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函数中定义参数的四种方式
Nov 30 Python
Python字符串切片操作知识详解
Mar 28 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
python实现Adapter模式实例代码
Feb 09 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
Python函数参数操作详解
Aug 03 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
python经典趣味24点游戏程序设计
Jul 26 Python
python numpy存取文件的方式
Apr 01 Python
pytorch中的numel函数用法说明
May 13 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 !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
2011/01/07 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
Python实现的简单算术游戏实例
2015/05/26 Python
用python与文件进行交互的方法
2018/03/01 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
小学开学寄语
2014/01/19 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书