Tkinter按钮在功能执行期间保持按下状态

2024-10-05 14:21:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Tkinter库用Python编写一个域控制程序。 有一个按钮可以启动位于另一个脚本中的函数(我在开头就包含了这个按钮)

该按钮工作正常,但在执行我的功能时仍然按下,这需要一些时间来执行。。。 我会设置一个“等待屏幕”,而不是仅仅按下按钮,程序没有响应。 我加入了代码的摘录

我到处找,但没有找到明确的解决办法

希望你能帮助我

主脚本:

import backend
from tkinter import *

window = Tk()
frameMain  = Frame(window)
buttonConnection = Button(frameMain, text="Connect devices", command=backend.configDevices)
frameMain.pack()

backend.py脚本:

pathConfip = 'assets/confip.txt'
...
def configDevices():
    with open(pathConfip, 'r', encoding='utf-8') as fileConfip:
        # ips are in a text file, separated by "###" each time
        ip = fileConfip.read().split('###')
    global bulb1, bulb2, bulb3, stripeBulb, lgtv, cast
    bulb1 = Bulb(ip[0])
    bulb2 = Bulb(ip[1])
    bulb3 = Bulb(ip[2])
    stripeBulb = Bulb(ip[3])
    lgtv = WebOsClient(ip[4])
    cast = Chromecast(ip[5])

Tags: textimportip脚本backendwindow按钮bulb
1条回答
网友
1楼 · 发布于 2024-10-05 14:21:24

正如Bryan在评论中所说的,处理这个问题的最佳方法是使用线程。也许最简单的方法(不需要太多的讨论)是通过命令运行另一个python脚本

import os
os.system("python file.py &")

请注意,这将在Linux上工作。要在windows上后台运行命令,您需要使用pythonw.exe而不是python.exe(请参见here)。Pythonw也将在Linux上工作

最后一件事,如何知道命令何时结束? 同样,最简单(但也很难看)的方法是修改位于同一文件夹中的文件(json或txt)。然后,每隔一秒钟左右,tkinter应用程序就可以查看文件(如果文件已更改),以便知道何时停止显示加载屏幕

相关问题 更多 >