簡體   English   中英

如何在 Pygubu 中設置復選框狀態

[英]How to set Checkbox state in Pygubu

我一直在嘗試通過代碼設置Tkinter-checkbox狀態有一段時間了,但我被卡住了。

試過.toggle() , .set() , .select()但我得到“對象沒有屬性”

使用pygubu是否有另一種方法可以訪問Tkinter對象方法?

關於如何做到這一點的任何想法?

import os
import tkinter as tk  # for python 3
import pygubu

CURDIR = os.path.dirname(__file__)
UI_FILE = os.path.join(CURDIR, 'gui2.ui')

class Application:
    def __init__(self):
        #1: Create a builder
        self.builder = builder = pygubu.Builder()
        #2: Load an ui file
        builder.add_from_file(UI_FILE)
        #3: Create the widget using a master as parent
        self.mainwindow = builder.get_object('toplevel1')
         #4: connect callbacks
        self.builder.connect_callbacks(self)

    def on_print(self):
        checked = self.builder.get_object('Checkbutton_1')
        checked.toggle()

    def run(self):
        self.mainwindow.mainloop()

if __name__ == '__main__':
    app = Application()
    app.run()

我設法通過在 pygubu(設計器窗格的右下角)中設置一個與復選框關聯的變量然后在代碼中獲取該變量並更改它來做到這一點。 我在 app 類的__init__中設置了默認值。

假設連接到復選框的變量稱為boxChecked並且其類型設置為 boolean

checked = builder.get_variable("boxChecked")
checked.set(True)

然后,您可以使用checked.get()從變量中獲取復選框的狀態

我認為必須有一種“更好”的方法來做到這一點,但這對我有用。

暫無
暫無

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

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