首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gtk3不能滚动ScrolledWindow的足够远

Gtk3不能滚动ScrolledWindow的足够远
EN

Stack Overflow用户
提问于 2021-03-05 07:41:15
回答 1查看 67关注 0票数 0

如何才能让Gtk ScrolledWindow滚动多行的高度?(我的意思是在增加滚动窗口内容的高度后自动滚动。(手动滚动很好。)

我的代码将3行代码写到ScrolledWindow视图端口内的Gtk ScrolledWindow中,并指示ScrolledWindow滚动,但它只向下显示3行中的第一行。

我的红宝石代码是这样的:

代码语言:javascript
复制
# Write 3 lines of text
textview.buffer.insert_at_cursor "%s\n"%s\n%s\n % [line1, line2, line3]
# Scroll
textview.scroll_to_iter textview.buffer.end_iter, 0.0, true, 0.5, 0.5 # Scroll to end of Gtk::TextView
vadjustment = textview.parent.parent.vadjustment # Get vadjustment from Gtk::ScrolledWindow
vadjustment.set_value vadjustment.upper

我尝试在vadjustment.set_value函数调用中插入任意的大值,并使用step_incrementpage_increment尝试各种数学,但除非手动滚动ScrollView,否则不能让它滚动超过一行的高度。我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2021-12-15 16:26:38

通过将滚动操作移动到“已更改”信号的回调中,我获得了适当的滚动量:

代码语言:javascript
复制
buffer = textview.buffer

# Configure scrolling
buffer.signal_connect("changed") {
  mark = buffer.create_mark nil, buffer.start_iter.forward_to_end, false
  textview.scroll_mark_onscreen mark
}

# ...

# Add text to the widget
buffer.insert_markup @output.buffer.end_iter, "\n#{markup}", -1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66488565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档