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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python字符串处理函数简明总结
Apr 13 Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 Python
5款非常棒的Python工具
Jan 05 Python
python @property的用法及含义全面解析
Feb 01 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
Python类反射机制使用实例解析
Dec 30 Python
Python sep参数使用方法详解
Feb 12 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 URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
javascript数组去重小结
2016/03/07 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
python文件写入实例分析
2015/04/08 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
python利用platform模块获取系统信息
2020/10/09 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
销售人员求职信
2014/07/22 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
mysql 生成连续日期及变量赋值
2022/03/20 MySQL