Как связать флажок с диалоговым окном открытия файла и отобразить детали файла, открытого в графическом интерфейсе с помощью Python tkinter? - PullRequest
0 голосов
/ 23 февраля 2019

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

Диалоговое окно открытия файла должно открываться только тогда, когдафлажок установлен в графическом интерфейсе.

Например, есть 2 флажка 1. Почва 2. Погода

Только когда флажок Почва установлен, окно открытия файла должно быть открыто ион должен напечатать путь к открытому файлу в консоли и повторить то же самое для Weather.

И детали выбранного файла должны отображаться в правой части интерфейса.

Наконец, кнопка отправки должна быть включена.После нажатия кнопки подтверждения интерфейс должен закрыться.

from tkinter import * #imports
from tkinter import Tk
from tkinter.filedialog import askopenfilename

win = Tk()            #create instance

win.title("Spatialization of DSSAT model")

w = 160 # width for the Tk root
h = 100 # height for the Tk root

# get screen width and height
ws = win.winfo_screenwidth() # width of the screen
hs = win.winfo_screenheight() # height of the screen

# calculate x and y coordinates for the Tk root window
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)

# set the dimensions of the screen
# and where it is placed
win.geometry('%dx%d+%d+%d' % (w, h, x, y))

def var_states():
    print("soil: %d, \nweather:%d" % (var1.get(), var2.get()))

Label(win, text="Select:").grid(row=0, sticky=W)
var1 = IntVar()
Checkbutton(win, text = "soil", variable=var1).grid(row=1, sticky=W)
var2 = IntVar()
Checkbutton(win, text = "weather", variable=var2).grid(row=2, sticky=W)

MyButton1 = Button(win, text="Submit", width=10)
MyButton1.grid(row=10, column=10)

Tk().withdraw()
filename1 = askopenfilename()
print(filename1)

Tk().withdraw()
filename2 = askopenfilename()
print(filename2)

win.mainloop()           #start the GUI

1 Ответ

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

Вы можете использовать command=someFunction для кнопок проверки и кнопки подтверждения, а затем в someFunction() вам нужно написать, что вы хотите сделать, когда нажимаете эту кнопку.

Попробуйте это:

from tkinter import *
from tkinter import Tk
from tkinter.filedialog import askopenfilename

win = Tk()

win.title("Spatialization of DSSAT model")

w = 160
h = 100

ws = win.winfo_screenwidth()
hs = win.winfo_screenheight()

x = (ws/2) - (w/2)
y = (hs/2) - (h/2)

win.geometry('%dx%d+%d+%d' % (w, h, x, y))

def forCheckbutton1():
    filename1 = askopenfilename()
    print(filename1)

def forCheckbutton2():
    filename2 = askopenfilename()
    print(filename2)

def forMuButton1():
    win.destroy()

def var_states():
    print("soil: %d, \nweather:%d" % (MyVar1.get(), MyVar2.get()))

MyLabel1 = Label(win, text="Select:")
MyLabel1.grid(row=0, column=0, sticky=W)

MyVar1 = IntVar()
MyVar2 = IntVar()

MyCheckbutton1 = Checkbutton(win, text="soil", variable=MyVar1, command=forCheckbutton1)
MyCheckbutton1.grid(row=1, column=0, sticky=W)
MyCheckbutton2 = Checkbutton(win, text="weather", variable=MyVar2, command=forCheckbutton2)
MyCheckbutton2.grid(row=2, column=0, sticky=W)

MyButton1 = Button(win, text="Submit", width=10, command=forMuButton1)
MyButton1.grid(row=3, column=0)

win.mainloop()

и для отображения информации вы можете добавить рамку и показать желаемую информацию на рамке.

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