我正在开发一个类似于X-plotter的小工具,可以实时绘制数据。 我已经搜索了一个解决方案来实现沿着x轴滚动,如果小部件有很多值,那么它们就不合适了。
我有实现它的方法:
我真的在网上搜索了一些建议或示例,但是没有任何关于如何以一种好的方式“构建”自定义控件(尤其是绘制内容)。在互动的情况下...... 对不起,我一般是GTK的新手:/
答案 0 :(得分:2)
Gtk中的大多数小工具不都有滚动条。
如果要滚动整个小部件,则必须实现GtkScrollable
接口。然后,将小部件添加到GtkScrolledWindow
。滚动窗口包含滚动条,GtkScrollbars
与GtkAdjustments
链接,通过GtkScrollable
界面set_vadjustment
和set_hadjustment
传递到您的自定义小部件。
如果您只想添加滚动条并自行控制其行为,则需要以某种方式在窗口小部件中添加GtkScrollbar
,这意味着您还需要将其设置为容器。
GtkScrollable
方法如下,首先实施vadjustment
和hadjustment
设置者和获取者,然后设置GtkAdjustments
时,设置其下限和上限和页面大小(一次可见多少小部件)。之后,连接他们的value-changed
信号,以便在拖动滚动条时刷新窗口小部件。 GtkScrollable
无法检查滚动条,只检查将绑定到滚动条的调整。绘制窗口小部件时,您将获得调整“value
属性,以确定滚动条在水平和垂直轴上移动了多少。”