Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例


Posted in Python onMarch 04, 2020

我就废话不多说了。大家直接看代码吧!

#!/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 ;

注意可以使用减号,例如 10x10-10-10 代表10*10大小的窗口出现在右下角,但是不能直接使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 相关文章推荐
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
十个Python程序员易犯的错误
Dec 15 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
Python中is与==判断的区别
Mar 28 Python
python判断列表的连续数字范围并分块的方法
Nov 16 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
python将字符串转变成dict格式的实现
Nov 18 Python
python ETL工具 pyetl
Jun 07 Python
python字典与json转换的方法总结
Dec 28 Python
python中Matplotlib绘制直线的实例代码
Jul 04 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 #Python
在python tkinter界面中添加按钮的实例
Mar 04 #Python
Python tkinter布局与按钮间距设置方式
Mar 04 #Python
python 按钮点击关闭窗口的实现
Mar 04 #Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 #Python
python虚拟环境模块venv使用及示例
Mar 04 #Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 #Python
You might like
快速开发一个PHP扩展图文教程
2008/12/12 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php文件读取方法实例分析
2015/06/20 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
PHP7变量处理机制修改
2021/03/09 PHP
Dom 结点创建 基础知识
2011/10/01 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
python 网络爬虫初级实现代码
2016/02/27 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
django序列化serializers过程解析
2019/12/14 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
Python爬取某平台短视频的方法
2021/02/08 Python
Python 图片处理库exifread详解
2021/02/25 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
蒂娜商店:Tiina the Store
2019/12/07 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
小学生寒假家长评语
2014/04/16 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
2019大学生实习报告
2019/06/21 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers