Python tkinter窗口显示在屏幕中心代码

tk = tkinter.Tk()
# 设置窗口居中
width = 300
height = 100
screenwidth = tk.winfo_screenwidth()
screenheight = tk.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
tk.geometry(alignstr)

# 设置窗口大小不可改变
tk.resizable(width=False,height=False)
tk.mainloop()
<think> 我们正在讨论如何使用PythonTkinter库使窗口显示。根据用户的问题,他想要隐藏窗口,而不是显示窗口。 引用[3]提到通过热键隐藏和显示窗口,说明有方法可以实现窗口的隐藏。通常,我们可以使用窗口的withdraw()方法或iconify()方法,但要注意两者的区别: - withdraw():完全移除窗口(包括任务栏图标),相当于窗口被隐藏。 - iconify():将窗口最小化到任务栏。 用户要求的是“不显示”,所以应该是完全隐藏,包括不在任务栏显示。因此,使用withdraw()方法更为合适。 另外,引用[2]中提到了设置窗口大小不可缩放,但没有直接提到隐藏窗口。引用[1]展示了如何创建窗口并进入主循环,但也没有隐藏。 因此,我们可以在创建窗口后,立即调用`withdraw()`方法,这样窗口就不会显示出来。 示例代码: ```python from tkinter import Tk # 创建主窗口 root = Tk() # 隐藏主窗口 root.withdraw() # 此时窗口已经被隐藏,我们可以进行其他操作,比如显示一个消息框等 # 如果需要再次显示窗口,可以使用root.deiconify() # 进入主循环,虽然窗口被隐藏,但程序仍在运行 root.mainloop() ``` 注意:在调用`withdraw()`后,窗口不会显示,但程序仍然在运行。如果我们想在某些事件(比如按下热键)后显示窗口,可以使用`deiconify()`方法。 另外,引用[3]提到了使用热键来隐藏和显示窗口,但用户目前没有要求热键,所以只需提供隐藏窗口的方法即可。 总结:使用`Tk().withdraw()`可以使窗口显示。 如果用户需要再次显示窗口,可以调用`deiconify()`方法。 因此,回答用户:通过调用窗口对象的`withdraw()`方法可以使窗口显示。 相关问题: 1. 如何在隐藏窗口后重新显示窗口? 2. 如何设置热键来显示或隐藏Tkinter窗口? 3. 隐藏窗口后如何退出程序? </think> 根据您的需求,使用Tkinter隐藏窗口主要有两种方法: ### 方法一:使用`withdraw()`方法(推荐) ```python from tkinter import Tk root = Tk() root.withdraw() # 隐藏主窗口 root.mainloop() ``` ### 方法二:使用`iconify()`方法 ```python from tkinter import Tk root = Tk() root.iconify() # 最小化到任务栏(视觉上隐藏) root.mainloop() ``` ### 关键区别: 1. `withdraw()`:完全从屏幕移除窗口,包括任务栏图标 2. `iconify()`:最小化窗口(仍在任务栏显示) 3. 显示隐藏窗口可使用`deiconify()`方法: ```python root.deiconify() # 重新显示窗口 ``` ### 注意事项: 1. 隐藏后程序仍在后台运行,需确保有退出机制 2. 可配合系统托盘图标实现后台运行 3. 创建后立即调用`withdraw()`可避免窗口闪烁 ### 完整示例: ```python from tkinter import Tk, Button def show_window(): root.deiconify() root = Tk() root.title("隐藏窗口示例") root.geometry("300x200") root.withdraw() # 启动时隐藏 # 创建显示按钮的隐藏窗口 control = Tk() control.title("控制面板") Button(control, text="显示窗口", command=show_window).pack(pady=20) Button(control, text="退出", command=root.destroy).pack() root.mainloop() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值