PyQt5每天必学之创建窗口居中效果


Posted in Python onApril 19, 2018

本文实例为大家分享了PyQt5如何能够创建在桌面屏幕上居中窗口的具体代码,供大家参考,具体内容如下

下面的脚本说明我们如何能够创建在桌面屏幕上居中的窗口。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

这个程序是将一个窗口显示在屏幕的中心。

作者:我的世界你曾经来过
博客:http://blog.csdn.net/weiaitaowang
最后编辑:2016年7月30日
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget

class Example(QWidget):

 def __init__(self):
  super().__init__()

  self.initUI()

 def initUI(self):

  self.setGeometry(300, 300, 300, 220)

  self.center()

  self.setWindowTitle('窗口居中')  
  self.show()

 def center(self):

  qr = self.frameGeometry()
  cp = QDesktopWidget().availableGeometry().center()
  qr.moveCenter(cp)
  self.move(qr.topLeft())

if __name__ == '__main__':

 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

QtGui.QDesktopWidget 类提供了有关用户桌面的信息,包括屏幕尺寸。

self.center()

将居中窗口的代码放置在自定义 center() 方法中。

qr = self.frameGeometry()

frameGeometry() 方法允许我们创建一个无形矩形并根据主窗口的宽高设置自身的宽度与高度。简单理解就是将这个控件(QWidget)的几何内容(宽高位置等),赋值给qr

cp = QDesktopWidget().availableGeometry().center()

计算出你的显示器的屏幕分辨率。根据得到的分辨率我们得到屏幕的中心点。

qr.moveCenter(cp)

我们的矩形(qr)已有宽度和高度,现在设置移动矩形的中心(moveCenter)到屏幕的中心点(cp),矩形的尺寸是不变的。

self.move(qr.topLeft())

移动应用程序窗口的左上角到qr矩形的左上角,从而使应用程序窗口显示在屏幕的中心。

程序执行后

PyQt5每天必学之创建窗口居中效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 正则表达式操作指南
May 04 Python
使用Python神器对付12306变态验证码
Jan 05 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
Python函数装饰器原理与用法详解
Aug 16 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
基于Python生成个性二维码过程详解
Mar 05 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
基于Python测试程序是否有错误
May 16 Python
高考考python编程是真的吗
Jul 20 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 Python
Python初学者必备的文件读写指南
Jun 23 Python
PyQt5每天必学之弹出消息框
Apr 19 #Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 #Python
PyQt5每天必学之关闭窗口
Apr 19 #Python
python实现在IDLE中输入多行的方法
Apr 19 #Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 #Python
PyQt5每天必学之工具提示功能
Apr 19 #Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 #Python
You might like
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Python操作csv文件实例详解
2017/07/31 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
客户经理岗位职责
2013/12/08 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
2014年安全员工作总结
2014/11/13 职场文书
小学生读书笔记范文
2015/06/30 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL