小白学tkinter(Toplevel组件(顶级窗口),用于弹窗)

本文介绍如何使用Python的Tkinter库创建顶级窗口,并演示了如何设置窗口透明度。通过具体代码实例,展示了按钮触发创建新窗口的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Toplevel(顶级窗口),类似于弹出窗口,具有独立的窗口属性(如标题栏、边框等)
下边的例子中,在root窗口添加一个按钮,点一下弹出一个顶级窗口。

from tkinter import *
root = Tk()
def create():
#创建一个顶级弹窗
    top = Toplevel()
    top.title('我的弹窗')
    msg = Message(top,text = '类似于弹出窗口,具有独立的窗口属性。',width = 150)
    msg.pack()
Button(root,text = '创建一个顶级窗口',command = create).pack(padx = 20,pady = 50)
mainloop()

Tkinter提供了一系列的方法用于与窗口管理进行交互。他们能被跟窗口调用,
同样也能呗顶级窗口调用(过几天整理到这里)。

特别讲下一个变态方法,呵呵。。。。
attributes()方法,不支持关键字参数,如attributes(alpha = 0.5)这样是不行地。
需要在选项前添加-(横杠)并用字符串的方式表示,用(,)隔开选项和值,
如attributes(‘-alpha’,0.5)

from tkinter import *
root = Tk()
def create():
    top = Toplevel()
    #使用attributes()方法
    top.attributes('-alpha',0.5)
    top.title('我的弹窗')
    msg = Message(top,text = '类似于弹出窗口,具有独立的窗口属性。',width = 150)
    msg.pack()
Button(root,text = '创建一个顶级窗口',command = create).pack(padx = 20,pady = 50)
mainloop()
### 创建无边框的 Tkinter Toplevel 窗口 为了创建一个没有边框的 `Toplevel` 窗口,在 Tkinter 中可以通过设置窗口属性来移除默认的窗口装饰。具体来说,可以使用 `overrideredirect(True)` 方法去除窗口周围的边框和标题栏。 下面是一个完整的 Python 代码示例,展示了如何创建并显示一个无边框的顶级窗口: ```python import tkinter as tk def create_borderless_window(): # 初始化主窗口 root = tk.Tk() # 隐藏根窗口 root.withdraw() # 创建一个新的顶层窗口 borderless = tk.Toplevel(root) # 移除窗口的所有装饰(如标题栏, 边框等) borderless.overrideredirect(True) # 设置窗口位置和大小 screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() window_width = 300 window_height = 200 position_top = int(screen_height / 2 - window_height / 2) position_right = int(screen_width / 2 - window_width / 2) geometry_string = f"{window_width}x{window_height}+{position_right}+{position_top}" borderless.geometry(geometry_string) label = tk.Label(borderless, text="这是一个无边框的窗口", font=("Arial", 18)) label.pack(expand=True) # 自动关闭窗口的功能 def close_after_15_seconds(): borderless.destroy() root.quit() borderless.after(15000, close_after_15_seconds) # 进入消息循环 root.mainloop() create_borderless_window() ``` 此脚本会启动一个隐藏的主窗口,并在其之上打开一个居中的、没有任何边界或标题条的子窗口[^1]。此外,还设置了定时器让该窗口在15秒之后自动消失[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值