Добавить новый кадр с помощью флажка (Tkinter) - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь создать графический интерфейс в Python, и мне нужна ваша помощь.В этом графическом интерфейсе пользователь должен оптимизировать свои результаты с помощью выбора параметров.Я написал следующий код:

'''----------------frame Discharge calculation-------------------'''
self.discharge = BooleanVar()
self.discharge.set(False)
self.dischargeBut = Checkbutton(frame, text = "calculate discharge", variable = self.discharge)
self.dischargeBut.place(x=600, y=40)

frame3 = Frame(note)
note.add(frame3, text = "Discharge calculation")
self.xButton = 370
self.xText = 250
self.xText2 = 350
self.yAddText = 10
self.yAddText2 = 10

Проблема заключается в том, что frame3 должен быть видимым / активным, только когда установлен флажок («рассчитать расход»).

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете сделать виджет видимым, используя любой из менеджеров геометрии: пакет, сетка и место.Все это также может отменить отображение виджета, чтобы он не отображался.Я думаю, что проще всего связать флажок с функцией обратного вызова, которая отображает или удаляет виджет.

Будьте осторожны, так как виджеты отображения и отображения могут привести к тому, что содержащийся виджет изменит свой размер.

from tkinter import *

root = Tk()
root.geometry('300x200')

'''----------------frame Discharge calculation-------------------'''
discharge = BooleanVar()
discharge.set(False)

def display_calc():
    if discharge.get() == True:
        frame3.place(x=60, y=100)
    else:
        frame3.place_forget()

dischargeBut = Checkbutton(root, text="calculate discharge",
                           variable=discharge, command=display_calc)
dischargeBut.place(x=60, y=40)

# The Discharge calculation widget
frame3 = Frame(root)
Label(frame3, text='Discharge calculation').pack()

root.mainloop()

Также;использование place() почти всегда плохой выбор.Прочитайте о grid() и pack(), так как их легче использовать, когда ваш графический интерфейс становится более сложным.

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