我在我的一个python脚本中有这个函数,它会弹出一个Tkinter简单对话框屏幕,请求一些简单的用户输入。功能正常。但是,它有两个问题。在
AttributeError: 'NoneType' object has no attribute 'winfo_viewable'
如果能在某一点上找出这一点是很好的,但我的主要问题是第二个问题:
任何帮助将不胜感激!在
我的代码:
def getUser():
master = Tk()
newList2=str(newList).replace(", ","\n")
for ch in ['[',']',"'"]:
if ch in newList2:
newList5=newList2.replace(ch,"")
userNr=simpledialog.askinteger("Enter user number", newList2)
chosenUsernr= userNr - 1
global chosenUsernrdef
chosenUsernrdef = chosenUsernr
master.destroy()
我不认为有什么方法可以提升/集中注意力,但是
askinteger
只是几个小部件的组合,因此您可以轻松地自己重新创建它。在要在代码中使用它,可以
^{pr2}$首先,感谢Lafexlos展示了如何在Tkinter上应用
.lift()
和类似命令的解决方案simpledialog.askinteger()窗口,方法是将此类窗口重新创建为Tk()实例。在然而,对于那些想要自动激活一个Tk窗口的人来说(这样你就不必点击它就可以输入了),这里似乎有多个选项。在
最常见的解决方案似乎是使用},如图所示,here和{a2}。然而在here上,这些选项似乎在(至少是某些版本的)Windows操作系统上不起作用。This问题显示了这些系统的可能解决方案。另外,以前的解决方案似乎不能在多个版本的osx上运行。基于提供的解决方案here,使用苹果的osascript,我能够解决我的问题。在
.focus()
或{工作代码最终如下所示:
简化/通用解决方案:
^{pr2}$编辑:现在我在想办法寻找解决方案似乎已经被多个帖子找到了。{tx和tx的多个实例同时运行时,{tx和kinter可能希望同时激活一个特定的窗口。在
相关问题 更多 >
编程相关推荐