在python GUI编程中从父类(继承的类)中调用tkinter标准quit方法导致程序无响应的问题
2019-03-19 18:03
477 查看
版权声明:本文为博主原创文章,未经博主允许禁止转载! https://blog.csdn.net/az9996/article/details/88668858
=======================================================================
在jupyter和pycharm中均会出现此问题。
问题的具体描述:按钮功能为,点击按钮关闭窗口。当调用父类(或继承的类)中的quit方法传递给command,会出现按钮按下,但窗口未关闭,程序无响应。
问题的具体原因还不清楚。
解决方法
使用sys库中的exit方法来进行关闭窗口的操作,无异常发生。
下面是例子:
=======================================================================
from tkinter import * def greeting(): print('Hello stdout world!...') win = Frame() win.pack(side=TOP, expand=YES, fill=BOTH) Button(win, text='Hello', command=greeting).pack(side=LEFT, fill=Y) Label(win, text='Hello container world').pack(side=TOP) Button(win, text='Quit', command=win.quit).pack(side=RIGHT, expand=YES,fill=X) win.mainloop()
代码描述:
按下Hello按钮将触发此文件中定义的greeting函数,该函数将再次打印到stdout。
按下退出按钮调用由win从Frame类(Frame)继承的标准tkinter退出方法。退出与Tk具有相同的效果。退出我们之前使用的)。
修改后正常程序正常关闭。
from tkinter import * from tkinter_test.gui6 import Hello from sys import exit class HelloContainer(Frame): def __init__(self,parent=None): Frame.__init__(self,parent) self.pack() self.makeWidgets() def makeWidgets(self): Hello(self).pack(side=RIGHT) Button(self,text='Attach',command=exit).pack(side=LEFT) if __name__ == '__main__': HelloContainer().mainloop()
从sys导入exit
将command=win.quit修改为command=exit
相关文章推荐
- python3 继承 在子类中如何调用父类中的方法
- Python——简述方法调用、父类继承、装饰器的作用和区别
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
- Python 父类调用子类方法的问题
- 在Python多继承中调用父类的同名方法
- 继承父类,调用父类中的方法 分类: python 小练习 python基础学习 2014-01-10 17:54 325人阅读 评论(0) 收藏
- python基础----继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法
- python基础之继承实现原理、子类调用父类的方法、封装
- 关于子类继承父类后调用方法的问题
- java中子类继承父类自动调用父类无参构造方法的问题
- python基础之类的继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法
- Python开发基础-Day20继承实现原理、子类调用父类的方法、封装
- python 继承 及调用被重写的父类方法(未被绑定的方法)
- linux Eclipse上c++调用使用了tensorflow库的python程序遇到的问题及解决方法
- 子类继承父类时,创建对象,构造方法的调用问题
- python继承,调用未绑定的父类方法,super,多级继承
- 关于子类继承父类后调用方法的问题
- 鱼c笔记——Python的GUI编程(十七):Tkinter的标准对话框模块messagebox 、filedialog 和 colorchooser
- 方法调用传参,程序容错性问题
- 在EXE程序中调用DLL文件后出现_CrtIsValidHeapPointer(pUserData)问题的解决方法