设置居中函数,设置好这个居中函数,在初始化整个控件的时候,调用这个函数,就可以使得整体的框架的位置在一开始就被设置好

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

对于这个函数进行分析,qr是整个框架的类(通过使用方法可以看出是用的是返回整个类的对应元素的引用)

  • cp是一个关键的QPoint,其实就是整个可用屏幕的正中心这个点的Point(坐标)。
  • 可以通过将函数改成下面的函数,来进行判断
def center(self):qr = self.frameGeometry()cp = QDesktopWidget().availableGeometry().center()self.move(cp)

可以发现那个框架的左上角在整个屏幕的中心点, 由于我们之前关于move函数的理解,可以推出上面结论

总之,根据前面的代码得到的新的代码为下面代码

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox, QDesktopWidget
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplicationclass Example(QWidget):def __init__(self):super().__init__()self.setUI()def setUI(self):QToolTip.setFont(QFont('SansSerif', 10))self.resize(500, 150)self.move(100, 100)self.setWindowIcon(QIcon('./Title.ico'))self.setWindowTitle("Hello world")self.setToolTip("<b>this is widget</b>")btn = QPushButton("quit Button", self)  # self类似于C++ this指针btn.setToolTip("This is a button will quit itself")btn.clicked.connect(QCoreApplication.instance().quit)btn.resize(btn.sizeHint())btn.move(0, 0)self.center()self.show()def closeEvent(self, event):reply = QMessageBox.question(self, 'Message',"Are you sure to quit?", QMessageBox.Yes |QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:event.accept()else:event.ignore()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_())

pyqt5入门教程(七)相关推荐

  1. 图像设定阈值二值matlab,“图像类型转换II——使用“导入、导出和转换”中的“阈值法”转换为二值图像”,MATLABImageProcessingToolbox,入门教程,七,之...

    1 imbinarize函数 在 [MATLAB Image Processing Toolbox 入门教程二]快速入门之"亮度校正"和"目标识别" 中我们已经 ...

  2. python pyqt教程_『开发技巧』PyQt5入门教程

    PyQt5相关 PyQt5是一套来自Digia的Qt5应用框架和Python的粘合剂.支持Python2.x和Python3.x版本.本教程使用Pyhton 3.Qt库是最强大的GUI支持库的一种.P ...

  3. 图深度学习,入门教程七,残差多层图注意力模型

    深度学习还没学完,怎么图深度学习又来了?别怕,这里有份系统教程,可以将0基础的你直接送到图深度学习.还会定期更新哦. 主要是基于图深度学习的入门内容.讲述最基本的基础知识,其中包括深度学习.数学.图神 ...

  4. 【大白话学习】UniApp 微信小程序与APP应用 开发零基础入门教程(七)---登陆注销功能与微信小程序测试号的申请

    到此为止,我们只差一个退出登陆功能了. 回到index.vue页面,之前我们已经预留了退出按钮,现在给它加上功能 <button class="mybutton" type= ...

  5. pyqt5入门教程(五)

    点击这个button就会将整个程序给退出出去 btn.clicked.connect(QCoreApplication.instance().quit) 这个是最新的代码,通过这个实现了这个信号跟槽的 ...

  6. pyqt5入门教程(四)

    设置 ToolTip,只要将鼠标停在对应的控件几秒不动,就会显现一个帮助提示 运行结果所在 import sys from PyQt5.QtWidgets import QApplication, Q ...

  7. pyqt5入门教程(三)

    其实可以通过前面的代码看出,在main函数部分,其实只是做了三件事 1. 创建应用 2. 创建图形界面 3. 将应用退出信号 因此,我们完全可以将整个图形界面创建的过程封装一下,这么以后,我只需要改变 ...

  8. pyqt5入门教程(二)

    添加Icon(图标) 在网上下载一些ICO格式的图标 其实一般我们使用的png格式的图片也是可以的~ import sys from PyQt5.QtWidgets import QApplicati ...

  9. linux入门教程(七) linux系统用户以及用户组管理

    关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...

最新文章

  1. vector机器人 HOW TO CHARGE VECTOR 如何给矢量充电
  2. Shell+Linux命令实现日志分析
  3. SQLite学习手册(锁和并发控制)
  4. 常见开源项目结构划分
  5. easy js test--方便对js进行测试,不需要刷新
  6. linux应用与管理,Linux操作系统应用与管理
  7. keras 多层lstm_tensorflow-如何在keras中堆叠多个lstm?
  8. 周报_2012第11周(2012/03/11-2012/03/17)
  9. 博世 40 亿欧元押注自动驾驶,Waymo 准备接招吧
  10. c++删除数组中重复元素_LeetCode题目26:删除排序数组中的重复项
  11. win11的drivers文件可以删除吗 windows11drivers文件是否可以删除的详细介绍
  12. 全新安装2008操作系统和2008 server core核心安装
  13. c#抽取pdf文档标题(1)
  14. 项目owner看这里,MaxCompute全表扫描新功能,给你“失误”的机会
  15. matlab cramer法则,玩转线性代数(8)第一章第七节_克拉姆法则与秘密武器
  16. Modifier在java_Java-Modifier类常用方法详解
  17. 手把手教你如何微信公众号开发
  18. DM8 数据库连接Alibaba druid 提示:dbType not support
  19. 微信小程录制视频上传服务器,微信小程序-从相册获取图片,视频使用相机拍照,录像上传+服务器nodejs版接收-微信小程序视频上传功能-微信小程序视频上传...
  20. Mac上解决XXX.app已损坏 无法打开

热门文章

  1. WINCE5.0和WINCE6.0的内存与系统架构
  2. docker-compose报错:(root) Additional property mail-service is not allowed
  3. 中国研究的超级系统计算机,[公告]超级系统恢复--学习电脑 Book 3 V1.1
  4. nodejs中的exports和module.exports
  5. 【Eclipse提高开发速度-插件篇】安装VJET插件,JS等提示开发插件
  6. java基础 - file类(递归遍历目录)
  7. uwsgi安装过程中遇到的问题
  8. weblogic服务器保存图片失败解决办法
  9. 实例:如何设计一款好的Metro UI应用
  10. 艾伟:MOSS 2007 项目的开发步骤