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模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
python机器学习之神经网络(一)
Dec 20 Python
解决python Markdown模块乱码的问题
Feb 14 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
python opencv实现证件照换底功能
Aug 19 Python
WxPython实现无边框界面
Nov 18 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
Python+OpenCV实现在图像上绘制矩形
Mar 21 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
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
php常用文件操作函数汇总
2014/11/22 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
利用jquery获取select下拉框的值
2016/11/23 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
js实现省市级联效果分享
2017/08/10 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Python requests模块session代码实例
2020/04/14 Python
python访问hdfs的操作
2020/06/06 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
医学专业毕业生推荐信
2013/11/14 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
二年级语文教学反思
2014/02/02 职场文书
书法大赛策划方案
2014/06/04 职场文书
超市理货员岗位职责
2014/07/04 职场文书
物业保洁员管理制度
2015/08/05 职场文书
MySQL基础(二)
2021/04/05 MySQL
python 批量压缩图片的脚本
2021/06/02 Python
Python matplotlib多个子图绘制整合
2022/04/13 Python
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技
Promise静态四兄弟实现示例详解
2022/07/07 Javascript