python - 【:-D Tkinter 中 withdraw的正确使用姿势

查看:907
本文介绍了python - 【:-D Tkinter 中 withdraw的正确使用姿势的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如何实现点击button之后 显示一个新的窗口并且使button那个窗口直接消失
先贴上代码

    #coding:utf-8
    import Tkinter as tk
    from Tkinter import *
    import tkMessageBox
  
   
    root = tk.Tk()
    root.title('Test')
    e = StringVar()
  
  
    def callback():
         #tkMessageBox.showinfo('title','hello world')
          entry = Entry(root,textvariable = e)
          e.set('请输入')
          entry.pack()
 
  
    def bnt():
          Button(root,text = '确认使用',fg='red',bd = 2,width =28,
          command = callback).pack()
          root.withdraw()
    bnt()
    root.mainloop()
    

但比较蛋疼的是。。用了withdraw之后button窗口就直接匿了。。。点都点不了

解决方案

同shomy,很少用Tkinter,写了一个PyQt4版本的,你可以试试,亲测运行没问题

# coding:utf-8

from PyQt4.QtGui import *

# 点击后需要显示的窗口
class Window(QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        self.resize(400, 200)
        self.setWindowTitle("I am the new Window")

    def handleTrigger(self):
        # 如果当前为隐藏状态,则显示
        if not self.isVisible():
            self.show()

# 按钮
class Btn(QToolButton):

    def __init__(self, parent=None):
        super(Btn, self).__init__(parent)
        self.resize(300, 100)

    def handleClick(self):
        # 如果当前为显示状态,则隐藏
        if self.isVisible():
            self.hide()


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    b = Btn()
    w = Window()
    # 窗口初始化为隐藏
    w.hide()
    # 点击时,触发新窗口的handleTrigger事件
    b.clicked.connect(w.handleTrigger)
    # 点击时,触发Button自己的handleClick事件
    b.clicked.connect(b.handleClick)
    b.show()
    app.exec_()
    

PS: 如果没什么特殊的要求,推荐用PyQt4/PyQt5进行开发,原因:
1) 借助于Qt的强大类库,PyQt可以做很多事情,比如图形的绘制、XML解析、网络编程、数据库的读写等,也就是说PyQt不单单是一个GUI库,还包括非GUI的部分。
2) 借助于Qt Designer,你可以对图形界面部分进行拖拽式的开发,效率非常高。
3) 强大的社区支持,比如有一款Python IDE就是基于PyQt做的开发,这个在开源社区里的流行程度比Tkinter目前看起来是强大些的。

这篇关于python - 【:-D Tkinter 中 withdraw的正确使用姿势的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆