簡體   English   中英

Python:使用滾動條創建自己的Widget

[英]Python: Creating own Widget with scrollbars

我正在制作一個類似於X的繪圖儀,它可以實時繪制數據。 我已經在尋找一個解決方案來實現沿着x軸滾動,如果小部件有很多值,那么它們就不適合。

我有實現它的愚蠢方法:

  • 派生自一個支持滾動和子窗口小部件的小部件,並添加我自己的小部件,同時在實時更新期間使其變得越來越大: - >我需要使用哪個父級,以及如何避免繪制當前不可見的所有內容?
  • 以支持滾動條本身的方式修改我的小部件 - >但是如何?
  • 繪制/處理我自己的滾動條 - >最壞情況:(

我真的在網上搜索了一些建議或例子,但是沒有任何關於如何以一種好的方式“構建”自定義控件(尤其是繪制內容)。 在互動的情況下......對不起,我一般是GTK的新手:/

Gtk中的大多數小部件都沒有滾動條。

如果要滾動整個窗口小部件,則必須實現GtkScrollable接口。 然后,將小部件添加到GtkScrolledWindow 滾動窗口具有滾動條,那些GtkScrollbarsGtkAdjustments鏈接, GtkAdjustments通過GtkScrollable接口set_vadjustmentset_hadjustment傳遞給您的自定義小部件。

如果您只想添加滾動條並自己控制其行為,那么您需要以某種方式在窗口小部件中添加GtkScrollbar ,這意味着您還需要將其設置為容器。

GtkScrollable方法如下,首先實現vadjustmenthadjustment setter和getter,然后在設置GtkAdjustments時,設置其下限和上限以及頁面大小(一次可見多少小部件)。 之后,您可以連接它們的value-changed信號,以便在拖動滾動條時刷新窗口小部件。 GtkScrollable無法檢查滾動條,只檢查將綁定到滾動條的調整。 繪制窗口小部件時,您將獲得調整的value屬性,以確定滾動條在水平和垂直軸上移動了多少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM