用Tkinter打造GUI开发工具(5)Toplevel弹出窗口

112 篇文章 45 订阅
106 篇文章 119 订阅

用Tkinter打造GUI开发工具(5)Toplevel弹出窗口
Tkinter的root.Toplevel()方法可以创建一个弹出窗口。Toplevel()方法的含义是建立在Tk()主窗口上面的顶层窗口,我们本书称为弹出窗口PopWindow。因为它为我们提供了很多高级功能,例如独立窗口工具栏,信息气泡等等都是用Toplevel()方法实现的,就像大窗口中弹出的小窗口。
Tkinter只有一个 Tk()主窗口root,可以建立无数个Toplevel()窗口PopWindow。
Toplevel()窗口拥有Tk()主窗口几乎所有方法,唯一不同的方法是destroy()方法。
Toplevel()窗口的PopWindow.destroy()方法,只销毁所有在PopWindow窗口上建立的小部件,和PopWindow窗口本身,即关闭PopWindow窗口。不影响Tk()主窗口和其它的PopWindow窗口。
Tk()主窗口的root.destroy()方法,会上删除所有Tkinter的部件,包括所有的Toplevel()窗口和Tk()主窗口。会停止mainloop()方法,终止Tkinter程序运行。
Toplevel()窗口的方法同Tk()主窗口方法,前面都介绍过了,这里就不多说了。下面看一个示例,读者体会关闭Tk窗口,和popWindow窗口,Tkinter程序会有什么不同。

# -*- coding: utf-8 -*-
import  tkinter  as  tk   #导入Tkinter模块,仅用于Python3
root =tk.Tk()  #建立Tkinter主窗口root
root.title(' Tk窗口')
root.geometry('{}x{}+{}+{}'.format(300, 200, 100, 200)) #改变窗口位置和大小
root.attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。

popWindow=tk.Toplevel(root)
popWindow.title('Toplevel窗口')
popWindow.geometry('{}x{}+{}+{}'.format(300, 200, 450, 200)) #改变窗口位置和大小
popWindow.attributes("-toolwindow", 1)  #参数1,设置工具栏样式窗口。
popWindow.attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。

popWindow2=tk.Toplevel(root)
popWindow2.title('Toplevel窗口2')
popWindow2.geometry('{}x{}+{}+{}'.format(300, 200, 800, 200)) #改变窗口位置和大小
popWindow2.attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。

root.mainloop()  #Tkinter的mainloop()方法

在这里插入图片描述
Toplevel()窗口的方法同Tk()主窗口方法,我们不重复介绍了。下来要解决程序设计中经常遇到的问题。
设置窗口大小的方法有了,如果不改变窗口到小,仅仅将窗口自动在屏幕中居中的函数。

#自动移动窗口到屏幕中央       
def setCenter(window,w=0,h=0):
    ws = window.winfo_screenwidth()  #获取屏幕宽度(单位:像素)
    hs = window.winfo_screenheight()  #获取屏幕高度(单位:像素) 
    if (w==0  or  h==0):
        w = window.winfo_width()   #获取窗口宽度(单位:像素)
        h = window.winfo_height()  #获取窗口高度(单位:像素)
    x = int( (ws/2) - (w/2) )
    y = int( (hs/2) - (h/2) )
    window.geometry('{}x{}+{}+{}'.format(w, h, x, y))

完整的演示程序如下:

# -*- coding: utf-8 -*-
import  tkinter  as  tk   #导入Tkinter模块,仅用于Python3

#移动窗口到屏幕中央       
def setCenter(window,w=0,h=0):
    ws = window.winfo_screenwidth()
    hs = window.winfo_screenheight()
    if (w==0 or h==0):
        w = window.winfo_width()   #获取窗口宽度(单位:像素)
        h = window.winfo_height()  #获取窗口高度(单位:像素)
    x = int( (ws/2) - (w/2) )
    y = int( (hs/2) - (h/2) )
    window.geometry('{}x{}+{}+{}'.format(w, h, x, y))

root =tk.Tk()  #建立Tkinter主窗口root
root.title(' Tk窗口')
root.geometry('{}x{}+{}+{}'.format(300, 200, 100, 200)) #改变窗口位置和大小
root.attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。

popWindow=tk.Toplevel(root)
popWindow.title('Toplevel窗口')
popWindow.geometry('{}x{}+{}+{}'.format(300, 200, 450, 200)) #改变窗口位置和大小
popWindow.attributes("-toolwindow", 1)  #参数1,设置工具栏样式窗口。
popWindow.attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。

setCenter(popWindow)  #把popWindow窗口移动到屏幕中央

root.mainloop()  #Tkinter的mainloop()方法

程序运行后,通过 setCenter(popWindow)语句,把popWindow窗口移动到屏幕中央。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: 使用Python中的tkinter库可以实现点击按钮窗体的功能。具体步骤如下: 首先需要导入tkinter库和相关模块: ```python from tkinter import * from tkinter import messagebox ``` 然后创建一个窗口对象: ```python root = Tk() root.title("点击按钮窗体") ``` 接下来,定义一个函数用于创建窗体: ```python def show_popup(): popup = Toplevel(root) popup.title("窗体") label = Label(popup, text="这是一个窗体") label.pack() ``` 创建一个按钮,并绑定点击事件: ```python button = Button(root, text="点击窗体", command=show_popup) button.pack() ``` 最后,进入主循环: ```python root.mainloop() ``` 以上代码设置了一个窗口,里面有一个按钮。当按钮被点击时,会调用show_popup函数,该函数会创建一个窗体,并在窗体中显示文本"这是一个窗体"。 这样,在Python tkinter中就可以实现点击按钮窗体的功能。 ### 回答2: 要实现在Python tkinter中点击按钮新窗体,可以按照以下步骤操作: 1. 导入`tkinter`模块:首先需要导入`tkinter`模块来创建GUI应用程序界面。 2. 创建主窗口:使用`Tk()`函数创建一个主窗口,并设置窗口的标题和尺寸。 3. 创建按钮:使用`Button()`函数在主窗口中创建一个按钮,并设置按钮的文本和命令(即点击按钮后要执行的函数)。 4. 定义窗函数:创建一个函数来定义窗体的内容和属性。在函数中,使用`Toplevel()`函数创建一个新的窗口,并设置其属性。 5. 运行主窗口:最后调用`mainloop()`函数来运行主窗口,并等待用户的操作。 以下是示例代码: ```python import tkinter as tk # 定义窗体函数 def popup_window(): # 创建一个新的窗口 window = tk.Toplevel() # 设置窗口的属性 window.title("窗体") window.geometry("200x100") # 设置窗口的内容 label = tk.Label(window, text="这是一个窗体!") label.pack() # 创建主窗口 root = tk.Tk() root.title("主窗口") root.geometry("200x200") # 创建按钮 button = tk.Button(root, text="窗体", command=popup_window) button.pack() # 运行主窗口 root.mainloop() ``` 运行上述代码后,会显示一个带有一个按钮的主窗口。当用户点击按钮时,会一个新的窗体,窗体中显示着文本"这是一个窗体!"。 ### 回答3: 使用Python的TKinter库可以很容易地实现点击按钮窗体的操作。首先,我们需要导入需要的模块,如下所示: ``` import tkinter as tk from tkinter import messagebox ``` 接下来,我们需要创建一个主窗口,并在窗口中添加一个按钮,代码如下: ``` def open_window(): messagebox.showinfo("窗", "这是一个窗窗体") root = tk.Tk() button = tk.Button(root, text="点击按钮", command=open_window) button.pack() root.mainloop() ``` 在上述代码中,我们定义了一个`open_window`函数,当按钮被点击时,这个函数会被调用。在`open_window`函数中,调用了`showinfo`方法来创建一个窗窗体,并显示一串消息。 最后,我们通过创建一个`Tk`对象来创建主窗口,并调用`mainloop`方法来启动主循环以监听事件。 运行上述代码,会显示一个主窗口,其中有一个按钮。当我们点击按钮时,会一个窗体,显示一段消息。 这就是使用Python的TKinter库实现点击按钮窗体的简单示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷蒲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值