簡體   English   中英

使用預制用戶界面 (pygubu) 時如何在 Tkinter 中擴展滾動條

[英]How to expand a Scrollbar in Tkinter when working with a pre-made user interface (pygubu)

PyGubu 是一個簡單的 Python 程序,它允許使用 Tkinter 小部件創建 UI 界面。

所以我在右邊創建了一個像這樣的用戶界面

在此處輸入圖片說明

現在,我希望 Scrollbar 和 Text 小部件一樣大。

“如何在 Tkinter 上使滾動條變大”已在 StackOverflow 上被多次詢問。 就我而言,我無法使用函數 pack() 或 grid() 因為我正在導入一個已經半完成的 UI

我用來加載文本和滾動條的代碼如下:

    self.log = builder.get_object('log')
    self.log_scroll = builder.get_object('log_scroll')
    self.log.config(yscrollcommand=self.log_scroll.set)
    self.log_scroll.config(command=self.log.yview)

現在,我在這里看到兩種可能性:


1.從PyGubu解決

最簡單的方法應該是從 PyGubu 設置一些屬性來解決這個問題。 然而,PyGubu 只允許我更改 Scrollbar 的少量屬性,而且它們似乎都不相關

2. 從 Python 解決

在這里,我不知道該怎么做。 我不知道我是否可以在使用自定義界面的同時使用 pack() 和 grid()

任何幫助表示贊賞

在寫這個問題時,我找到了一個不太直觀的答案,但仍然是最好的答案:

在此處輸入圖片說明

“粘性”屬性是可以解決問題的屬性。 不那么直觀的是您可以選擇多個方塊 ctrl+click。 如果您習慣使用 Tkinter,那可能不會讓您感到驚訝,但就我而言(使用 Tkinter 的第一天)我可以認為自己很幸運

當您在 Pygubu 中設置粘性選項時,即使所有三個方塊都突出顯示,它也會設置 NS(北南),這是預期的結果。 在此處輸入圖片說明

生成的代碼也只有“ns”,如下所示:

self.scroll_bar.grid(column='0', row='0', sticky='ns')

在 Pygubu 中選擇中央/中間方塊不會影響“ns”。 當您突出顯示 3 個方塊時,它仍然應該給您預期的結果。

暫無
暫無

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

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