如何才能让Gtk ScrolledWindow滚动多行的高度?(我的意思是在增加滚动窗口内容的高度后自动滚动。(手动滚动很好。)
我的代码将3行代码写到ScrolledWindow视图端口内的Gtk ScrolledWindow中,并指示ScrolledWindow滚动,但它只向下显示3行中的第一行。
我的红宝石代码是这样的:
# 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_increment和page_increment尝试各种数学,但除非手动滚动ScrollView,否则不能让它滚动超过一行的高度。我该怎么办?
发布于 2021-12-15 16:26:38
通过将滚动操作移动到“已更改”信号的回调中,我获得了适当的滚动量:
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}", -1https://stackoverflow.com/questions/66488565
复制相似问题