python - 如何根据 tkinkter 菜单中的选定选项触发按钮?
问题描述
我有一个列表和 3 条路径。每条路径都指的是专门为该国家/地区运行的应用程序。
country = ['Spain', 'United Kingdom', 'Malaysia']
path_spain = r"c:\data\FF\Desktop\PythonFolder\spain_software.py"
path_uk = r"c:\data\FF\Desktop\PythonFolder\uk_software.py"
path_malaysia = r"c:\data\FF\Desktop\PythonFolder\malaysia_software.py"
Run button
我创建的需要根据我在OptionMenu
. 因此,如果我选择Malaysia
我希望Run button
在path_malaysia
. 我正在努力解决这个问题。如果我单击例如,最好我也希望Run button
更改为。Run application Malaysia
Malaysia
OptionMenu
这是我的代码:
import os
from tkinter import *
window = Tk()
window.title("Running Python Script") #Create window
window.geometry('550x300') #geo of the window
def run():
os.system('python path_spain')
#The run button (this button runs some other software)
run_button = Button(window, text="Run application.....", bg="blue", fg="white",command=run)
run_button.grid(column=0, row=2)
#These are the option menus
dd_country = StringVar(window)
dd_country.set(country [0]) #the first value
w = OptionMenu(window, dd_country, *country)
w.grid(row=0,column=1)
#These are the titles
l1 = Label(window, text='Select Country', width=15 )
l1.grid(row=0,column=0)
mainloop()
现在它只适用于西班牙......
解决方案
import os
from tkinter import *
owner = ['Spain', 'United Kingdom', 'Malaysia']
path_spain = r"c:\data\FF\Desktop\PythonFolder\spain_software.py"
path_uk = r"c:\data\FF\Desktop\PythonFolder\uk_software.py"
path_malaysia = r"c:\data\FF\Desktop\PythonFolder\malaysia_software.py"
window = Tk()
window.title("Running Python Script") # Create window
window.geometry('550x300') # geo of the window
def run():
if dd_owner.get() == "Spain":
print("spain")
# os.system('python path_spain')
elif dd_owner.get() == "United Kingdom":
os.system('python path_uk')
elif dd_owner.get() == "Malaysia":
os.system('python path_malaysia')
def update_button(_):
run_button.config(text="Run application {}".format(dd_owner.get()))
# The run button (this button runs some other software)
# These are the option menus
dd_owner = StringVar(window)
dd_owner.set(owner[0]) # the first value
w = OptionMenu(window, dd_owner, *owner, command=update_button)
# w.config()
w.grid(row=0, column=1)
run_button = Button(window, text="Run application {}".format(dd_owner.get()), bg="blue", fg="white",command=run)
run_button.grid(column=0, row=2)
# These are the titles
l1 = Label(window, text='Select Owner', width=15)
l1.grid(row=0, column=0)
mainloop()
这将解决您的问题
推荐阅读
- php - Symfony 5.1.8 忽略来自 .env.test / .env.test.local 的覆盖
- c# - 单击(X)关闭新窗口时的WPF - 如何让另一个窗口出现?
- django-rest-framework - GET 应该用于详细信息,但 POST 不应该用于 Django-Rest-Framework 中的操作方法
- ansible - 如何通过 Ansible 安装 NVS
- react-native - React-Native-Camera 从 uri 获取高度和宽度
- linux - 无法在 Amazon Linux AMI 上安装 libatk-bridge-2.0.so.0
- django - Django:通过图像传递参数以在下一页中获取过滤视图
- python - 如何根据特定数字分隔字母?
- azure-functions - 从应用服务计划切换到 Azure Functions 高级计划
- compilation - 我如何确定为什么代码编译与 mpif90 一起挂起?