Python Tkinter 窗口居中、尺寸限制及高级属性设置指南

江屿
江屿
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍 Python Tkinter 库中窗口管理的核心技巧。通过代码实例演示如何计算屏幕分辨率并将窗口精确居中显示,同时设置窗口的最大与最小尺寸限制。此外,深入解析 geometry 方法的参数用法,包括负值定位技巧,并探讨窗口样式设置,如工具栏模式、透明度控制、全屏显示、置顶功能以及去除标题栏的实现方法,帮助开发者构建更专业的桌面应用程序界面。

Tkinter 窗口居中与尺寸限制实现

直接通过代码展示具体实现方式,便于快速理解与应用。


#!/usr/bin/env python
#coding=utf-8
'''
  窗口屏幕居中,设置窗口最大,最小尺寸...
  版权所有 2014 yao_yu (http://blog.csdn.net/yao_yu_126)
  本代码以MIT许可协议发布
  2014-04-15 创建
'''
 
import tkinter as tk
from tkinter  import ttk
 
def get_screen_size(window):
  return window.winfo_screenwidth(),window.winfo_screenheight()
 
def get_window_size(window):
  return window.winfo_reqwidth(),window.winfo_reqheight()
 
def center_window(root, width, height):
  screenwidth = root.winfo_screenwidth()
  screenheight = root.winfo_screenheight()
  size = '%dx%d+%d+%d' % (width, height, (screenwidth - width)/2, (screenheight - height)/2)
  print(size)
  root.geometry(size)
 
root = tk.Tk()
root.title('测试窗口')
center_window(root, 300, 240)
root.maxsize(600, 400)
root.minsize(300, 240)
ttk.Label(root, relief = tk.FLAT, text = '屏幕大小(%sx%s)\n窗口大小(%sx%s)' % (get_screen_size(root) + get_window_size(root))).pack(expand = tk.YES)
tk.mainloop()

补充说明:在 Tkinter 开发中,掌握几个关键的窗口设置方法至关重要。

首先介绍如何设定窗口的大小及其在屏幕上的位置。

使用 geometry(widthxheight+x+y) 格式进行配置。

其中,width 和 height 分别定义窗口的宽度和高度。

x 和 y 表示窗口左上角相对于主屏幕左上角的偏移距离。

需要注意的是,x 和 y 可以接受负值。例如,使用 10x10-10-10 可以让一个 10x10 像素的小窗口出现在屏幕右下角。但必须注意,不能直接让 x 或 y 为负数并直接代入 wxh+x+y 的字符串格式中,且该格式字符串内部严禁包含空格。

若调用该方法时不传入任何参数,它将返回当前窗口的大小和位置参数信息。


# -*- coding:utf-8 -*-
from tkinter import *

root = Tk()
width, height, padx, pady = 800, 600, 40, 300
root.geometry('%dx%d-%d+%d' % (width, height, padx, pady)) 

窗口高级属性:样式、透明与全屏设置

接下来探讨如何自定义窗口样式、透明度以及全屏模式。

通过设置 -toolwindow 参数,可以将窗口样式调整为工具栏风格。

使用 -alpha 参数可控制窗口透明度,取值范围从 0(完全透明)到 1(完全不透明)。需特别留意,透明度作用于窗口内的所有元素,若设置为完全透明,整个窗口内容将不可见,操作时需格外谨慎。

设置 -fullscreen 参数可使窗口进入全屏模式,务必确保参数前保留短横线(-)。

使用 -topmost 参数可将窗口置顶。若多个窗口同时设为置顶,它们处于同一层级并可互相遮挡,但它们均能覆盖在未置顶的窗口之上。


root.attributes('-toolwindow', False, 
        '-alpha', 0.9, 
        '-fullscreen', True, 
        '-topmost', True)

去除标题栏与窗口框架控制

最后介绍如何移除窗口的标题栏。

通过去除窗口框架,可使窗口脱离 Windows 系统的窗口管理器控制。此时,用户将无法通过拖拽移动窗口,且该窗口也不会显示在任务栏中。

实现代码为:root.overrideredirect(True)

思考一个问题:如果一个窗口同时具备全屏、置顶、透明以及去标题栏这些特性,将会产生怎样的视觉效果和交互影响?

以上内容涵盖了 Python Tkinter 中关于窗口屏幕居中、最大最小尺寸设置及相关高级属性的完整实例,希望能为读者提供有价值的参考。欢迎支持本站,获取更多技术分享。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。