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模拟登陆Tom邮箱示例分享
Jan 13 Python
详解Python中for循环的使用方法
May 14 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python打印输出数组中全部元素
Mar 13 Python
python获取代码运行时间的实例代码
Jun 11 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
python 猴子补丁(monkey patch)
Jun 26 Python
pandas取出重复数据的方法
Jul 04 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
Python插件机制实现详解
May 04 Python
django创建css文件夹的具体方法
Jul 31 Python
Django路由层如何获取正确的url
Jul 15 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实现随机合并数组并排序(原排序)
2015/11/26 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
JavaScript的Function详细
2006/11/14 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
Jquery动态列功能完整实例
2019/08/30 jQuery
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
python多线程操作实例
2014/11/21 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
Python计算字符宽度的方法
2016/06/14 Python
python 性能优化方法小结
2017/03/31 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
python实现批量转换图片为黑白
2020/06/16 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
俄罗斯游戏商店:Buka
2020/03/01 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
体育教育专业毕业生自荐信
2013/11/15 职场文书
客户经理岗位职责
2013/12/08 职场文书
离婚协议书范本样本
2014/08/19 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers
python语言中pandas字符串分割str.split()函数
2022/08/05 Python