Как отключить запись в зависимости от флажка с помощью tkinter? - PullRequest
0 голосов
/ 07 мая 2018

Я использую tkinter в Python для создания графического интерфейса.Я хочу, чтобы пользователь мог указать максимальное и минимальное значение и, если оно является постоянным значением, вводить только это значение.Я хотел бы это, установив флажок, который они могут поставить галочку, а затем поле максимального значения будет серым.Ниже мой код

from tkinter import *

class GUI(object):
    def __init__(self, master):
        self.master = master
        master.title("Variabelen")
        Label(master, text="Min").grid(row=0, column=1)
        Label(master, text="Max").grid(row=0, column=2)
        Label(master, text="Vaste waarde").grid(row=0, column=3)

        Label(master, text="Oppervlakte chiller").grid(row=1)
        Label(master, text="Diameter buizen").grid(row=2)

        aChillerMin = Entry(master)
        aChillerMax = Entry(master)
        dMin = Entry(master)
        dMax = Entry(master)

        aChillerMin.grid(row=1, column=1)
        aChillerMax.grid(row=1, column=2)
        aChillerVast = IntVar()
        chk = Checkbutton(root, variable=aChillerVast).grid(row = 1, column = 3)

        if aChillerVast.get():
           aChillerMax.config(state=DISABLED)

        dMin.grid(row=2, column=1)
        dMax.grid(row=2, column=2)

root = Tk()
myGUI = GUI(root)
root.mainloop()

1 Ответ

0 голосов
/ 07 мая 2018

Итак, вы хотите отключить запись, когда кнопка-флажок имеет значение True, отключите ее (исправьте меня в комментариях, если это не так). Для этого введите команду в виджете checkbutton.

Вот как вы это делаете:

from tkinter import *

class GUI(object):
    def __init__(self, master):
        self.master = master
        master.title("Variabelen")
        Label(master, text="Min").grid(row=0, column=1)
        Label(master, text="Max").grid(row=0, column=2)
        Label(master, text="Vaste waarde").grid(row=0, column=3)

        Label(master, text="Oppervlakte chiller").grid(row=1)
        Label(master, text="Diameter buizen").grid(row=2)

        aChillerMin = Entry(master)
        aChillerMax = Entry(master)
        dMin = Entry(master)
        dMax = Entry(master)

        aChillerMin.grid(row=1, column=1)
        aChillerMax.grid(row=1, column=2)
        aChillerVast = IntVar()

        def activateCheck():
            if aChillerVast.get() == 1:          #whenever checked
                aChillerMax.config(state=NORMAL)
            elif aChillerVast.get() == 0:        #whenever unchecked
                aChillerMax.config(state=DISABLED)

        chk = Checkbutton(root, variable=aChillerVast, command=activateCheck).grid(row = 1, column = 3)    #command is given

        aChillerMax.config(state=DISABLED)

        dMin.grid(row=2, column=1)
        dMax.grid(row=2, column=2)

root = Tk()
myGUI = GUI(root)
root.mainloop()

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...