首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter python代码中的无限循环

Tkinter python代码中的无限循环
EN

Stack Overflow用户
提问于 2013-03-08 22:53:43
回答 1查看 763关注 0票数 0

我正在试着运行一个简单的Tkinter程序,当你点击一个按钮时,它会打开一个程序。代码如下所示。我使用一个命令来调用一个程序,然后这个程序调用一个fortran程序。然而,当我点击按钮时,它会打开程序,但我调用的程序的菜单进入了一个无限的loop......the错误代码似乎在button1Click模块中。

任何帮助都是非常感谢的。

谢谢

代码语言:javascript
复制
from Tkinter import * 
import os, sys 
from win32com.client import Dispatch 
xlApp=Dispatch('Excel.Application') 
_PSSBINPATH=r"C:\Program Files\PTI\PSSE32\PSSBIN" 
os.environ['PATH']=_PSSBINPATH+';'+os.environ['PATH'] 
sys.path.insert(0,_PSSBINPATH) 
import redirect; redirect.psse2py() 
import psspy 

class MyApp: 
    def __init__(self, parent): 
        self.myParent = parent  ### (7) remember my parent, the root 
        self.myContainer1 = Frame(parent) 
        self.myContainer1.pack() 

        self.button1 = Button(self.myContainer1) 
        self.button1.configure(text="OK", background= "green") 
        self.button1.pack(side=LEFT) 
        self.button1.bind("<Button-1>", self.button1Click) ### (1) 

        self.button2 = Button(self.myContainer1) 
        self.button2.configure(text="Cancel", background="red") 
        self.button2.pack(side=RIGHT) 
        self.button2.bind("<Button-1>", self.button2Click) ### (2) 

    def button1Click(self,event):    ### (3) 
        psspy.runiplanfile(r"C:\MNTACT\Contingency Program\work\contingency-31-4.irf") 
        if self.button1["background"] == "green": ### (4) 
            self.button1["background"] = "yellow" 
        else: 
            self.button1["background"] = "green" 

    def button2Click(self, event):  ### (5) 
        self.myParent.destroy()     ### (6) 


root = Tk() 
myapp = MyApp(root) 
root.mainloop() 
EN

回答 1

Stack Overflow用户

发布于 2013-03-09 02:53:54

是什么让你认为有一个无限循环在发生?除非循环在runiplanfile中,否则我在button1Click中看不到循环。您是否使用“无限循环”来简单地表示GUI已停止响应?

Tkinter是单线程的,只有通过事件循环才能处理事件。如果一个事件需要很长时间来处理,GUI将挂起,直到该事件的处理完成。如果您正在执行一个外部进程并等待它完成,那么您的GUI将显示为冻结状态,直到该进程完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15296781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档