我有一个带有两个按钮的tkinter应用程序<代码>运行应用程序和存储数据
。我不想让最终用户有机会单击存储数据
,如果他没有先单击运行应用程序
。
因此,按钮存储数据
需要在首先单击按钮运行应用程序
后取消禁用。
在下面的代码中,我创建了一个检查器函数,它应该在上面完成,但是存储数据按钮总是处于禁用状态。
这是我的代码:
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
data = []
#Confirmation function
def store():
data.append(dd_owner.get())
print(data)
checker()
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()))
# These are the option menus
dd_owner = StringVar(window)
w = OptionMenu(window, dd_owner, *owner, command=update_button)
w.grid(row=0, column=1)
#These are the buttons
store_button =Button(window, text="Store data!",command=store)
store_button.grid(column=0, row=31)
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)
def checker():
if data:
store_button.configure(state='normal')
else:
store_button.configure(state='disabled')
checker()
mainloop()
如果数据:
数据是一个列表。在if语句中不能将数据用作布尔值。
使用-
Button(root,state= DISABLED)
这将禁用。
然后-
Button(root,state= NORMAL)
这将启用按钮
不要使用“”或“”。用大写字母写就行了
最初应禁用这两个按钮。
然后,如果选择了所有者,启用“运行”按钮。
如果单击“运行”按钮,则启用“存储”按钮。
下面是一个修改后的示例:
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
data = []
#Confirmation function
def store():
owner = dd_owner.get()
if owner and owner not in data:
data.append(owner)
print(data)
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')
# enable store button
store_button.config(state="normal")
def update_button(_):
# update text and enable the button
run_button.config(text="Run application {}".format(dd_owner.get()), state="normal")
# These are the option menus
dd_owner = StringVar(window)
w = OptionMenu(window, dd_owner, *owner, command=update_button)
w.grid(row=0, column=1)
#These are the buttons
store_button =Button(window, text="Store data!", command=store, state="disabled") # initially disabled
store_button.grid(column=0, row=31)
run_button = Button(window, text="Run application {}".format(dd_owner.get()),
bg="blue", fg="white",command=run, state="disabled") # initially disabled
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()
问题内容: 我正在 Angular2 应用程序上工作,我需要显示-但是是 HTML 元素。正确的方法是什么? 更新 请注意,这会阻止使用选项,而不是完全渲染。 该 打字稿 组件有一个方法,看起来像这样: 我实际上需要防止元素被单击,而不仅仅是与 CSS 一起出现。我以为我首先需要潜在地绑定到属性,但这是不正确的,因为锚元素没有属性。 我查看并考虑过使用,但是这妨碍了我的工作方式-这是要求的一部分。
我正在开发一个Angular2应用程序,我需要显示—但是<code>禁用<code>一个<code> 更新 请注意,这将阻止使用而不渲染 ,但是这妨碍了我的< code>cursor: not-allowed风格的工作——这是需求的一部分。
问题内容: 即使在使用Java Swing一年以上之后,对我来说,它仍然像魔术一样。如何正确使用BufferStrategy,尤其是方法? 我想添加一个JFrame和一个Canvas,然后进行绘制。我还希望能够调整()画布的大小。每次我调整Canvas的大小时,似乎都会被浪费掉,或者变得毫无用处,因为在上使用并没有真正做任何事情。另外,它具有怪异的不确定性行为,我不知道如何正确同步它。 这就是我的
问题内容: 我想在Linux上使用该机制。我希望我的应用程序知道何时更改了文件。能否请您提供给我一个示例,该怎么做? 问题答案: 文档(来自具有inotify的Monitor文件系统活动) 在C API 提供了三个系统调用来构建各种文件系统监视器: 在内核中创建子系统的实例,并在成功和失败时返回文件描述符。与其他系统调用一样,如果失败,请检查诊断。 顾名思义,它增加了一块 手表 。每个监视都必须提
问题内容: 需要帮助,以了解如何在UIKit中使用prepareForReuse()。该文件说 您只应重置与内容无关的单元格属性,例如Alpha,编辑和选择状态 但是如何重置单个属性属性(例如isHidden)呢? 假设我的单元格有2个标签,我应该在哪里重置: 标签文本 label.numberOfLines label.isHidden 我的tableView(_:cellForRowAt :)
一段时间以来,我一直试图将我的tableview工作作为一种电子表格,通过背景线程进行更新,当单元格更新时,它会亮起几秒钟(更改样式),然后返回到原始样式。我已经知道,我不能直接在表格单元格中存储和设置样式,我需要某种支持类来保存这些数据。但是tableview“重用”单元格(使用相同的单元格处理不同的数据)的行为真的很奇怪。当所有单元格都适合屏幕时,它对我来说完美无瑕,但一旦我放置大约100个单