python - 触发创建其他 tkinter 窗口
问题描述
我正在尝试创建一个 python 脚本,每次发生某个事件时都会触发一个 tkinter 窗口。python 脚本将有一个 while true 循环,并且在循环期间 tkinter 事件可能发生也可能不发生(if-else 块)。现在实际的循环部分还没有完成,所以我目前正在测试 tkinter 部分,但我似乎不能打开超过 tkinter 窗口。
下面是我正在使用的测试脚本。
from tkinter import *
from sys import exit
import os
onetwo = "C:/Users/I/Downloads/Transfer_Out_1016_Outlook.txt"
def popupError(s):
popupRoot = Tk()
##popupRoot.after(20000, exit)
popupButton = Button(popupRoot, text = s, font = ("Verdana", 12), bg = "yellow", command = lambda: os.system(onetwo))
popupButton.pack()
popupRoot.geometry('400x50+700+500')
popupRoot.mainloop()
popupError("HelloWORLD")
def popupTwo(s):
popupRoot = Tk()
##popupRoot.after(20000, exit)
popupButton = Button(popupRoot, text = s, font = ("Verdana", 12), bg = "yellow", command = lambda: os.system(onetwo))
popupButton.pack()
popupRoot.geometry('400x50+700+500')
popupRoot.mainloop()
popupTwo("HEWWWWWEWEWKOO")
对于缺少一段实际代码,我深表歉意,但鉴于整个 python 脚本其他部分的开发状态,这是我现在能做的最好的事情。
请注意,在单个循环会话中可能会多次触发 tkinter 窗口。
如果需要任何其他细节,我会尽力添加更多。
解决方案
以下是您可以执行的操作:
from tkinter import *
def popup(winName):
newWin = Toplevel()
btn2 = Button(newWin, text=winName)
btn2.pack()
root = Tk()
btn = Button(root, text=“Popup”, command=lambda: popup(“text”))
btn.pack()
root.mainloop()
推荐阅读
- python - Pytest 如何在包含 pytest.ini 的子文件夹中强制执行测试集合
- python - Airflow 变量的值在重新启动 docker 容器时变得无效
- json - 如何从python中的换行符分隔的JSON文件生成模式
- sql - 如何选择比插入列更多的列
- parceljs - 使用 Parcel bundler 加载 .png 文件不起作用
- mysql - 错误代码:2068 将 csv 文件加载到 MySql 中
- javascript - Vue中如何使用受控组件在父组件对象中设置值
- php - 如何在 laravel 中获取所有平均评分的数据
- python - python - 如何使用python中的bing maps api获取从源到目的地的多条路线?
- javascript - 在我的弹出窗口上更新密码的问题