pyqt5入门教程(七)
设置居中函数,设置好这个居中函数,在初始化整个控件的时候,调用这个函数,就可以使得整体的框架的位置在一开始就被设置好
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入门教程(七)相关推荐
- 图像设定阈值二值matlab,“图像类型转换II——使用“导入、导出和转换”中的“阈值法”转换为二值图像”,MATLABImageProcessingToolbox,入门教程,七,之...
1 imbinarize函数 在 [MATLAB Image Processing Toolbox 入门教程二]快速入门之"亮度校正"和"目标识别" 中我们已经 ...
- python pyqt教程_『开发技巧』PyQt5入门教程
PyQt5相关 PyQt5是一套来自Digia的Qt5应用框架和Python的粘合剂.支持Python2.x和Python3.x版本.本教程使用Pyhton 3.Qt库是最强大的GUI支持库的一种.P ...
- 图深度学习,入门教程七,残差多层图注意力模型
深度学习还没学完,怎么图深度学习又来了?别怕,这里有份系统教程,可以将0基础的你直接送到图深度学习.还会定期更新哦. 主要是基于图深度学习的入门内容.讲述最基本的基础知识,其中包括深度学习.数学.图神 ...
- 【大白话学习】UniApp 微信小程序与APP应用 开发零基础入门教程(七)---登陆注销功能与微信小程序测试号的申请
到此为止,我们只差一个退出登陆功能了. 回到index.vue页面,之前我们已经预留了退出按钮,现在给它加上功能 <button class="mybutton" type= ...
- pyqt5入门教程(五)
点击这个button就会将整个程序给退出出去 btn.clicked.connect(QCoreApplication.instance().quit) 这个是最新的代码,通过这个实现了这个信号跟槽的 ...
- pyqt5入门教程(四)
设置 ToolTip,只要将鼠标停在对应的控件几秒不动,就会显现一个帮助提示 运行结果所在 import sys from PyQt5.QtWidgets import QApplication, Q ...
- pyqt5入门教程(三)
其实可以通过前面的代码看出,在main函数部分,其实只是做了三件事 1. 创建应用 2. 创建图形界面 3. 将应用退出信号 因此,我们完全可以将整个图形界面创建的过程封装一下,这么以后,我只需要改变 ...
- pyqt5入门教程(二)
添加Icon(图标) 在网上下载一些ICO格式的图标 其实一般我们使用的png格式的图片也是可以的~ import sys from PyQt5.QtWidgets import QApplicati ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
最新文章
- vector机器人 HOW TO CHARGE VECTOR 如何给矢量充电
- Shell+Linux命令实现日志分析
- SQLite学习手册(锁和并发控制)
- 常见开源项目结构划分
- easy js test--方便对js进行测试,不需要刷新
- linux应用与管理,Linux操作系统应用与管理
- keras 多层lstm_tensorflow-如何在keras中堆叠多个lstm?
- 周报_2012第11周(2012/03/11-2012/03/17)
- 博世 40 亿欧元押注自动驾驶,Waymo 准备接招吧
- c++删除数组中重复元素_LeetCode题目26:删除排序数组中的重复项
- win11的drivers文件可以删除吗 windows11drivers文件是否可以删除的详细介绍
- 全新安装2008操作系统和2008 server core核心安装
- c#抽取pdf文档标题(1)
- 项目owner看这里,MaxCompute全表扫描新功能,给你“失误”的机会
- matlab cramer法则,玩转线性代数(8)第一章第七节_克拉姆法则与秘密武器
- Modifier在java_Java-Modifier类常用方法详解
- 手把手教你如何微信公众号开发
- DM8 数据库连接Alibaba druid 提示:dbType not support
- 微信小程录制视频上传服务器,微信小程序-从相册获取图片,视频使用相机拍照,录像上传+服务器nodejs版接收-微信小程序视频上传功能-微信小程序视频上传...
- Mac上解决XXX.app已损坏 无法打开
热门文章
- WINCE5.0和WINCE6.0的内存与系统架构
- docker-compose报错:(root) Additional property mail-service is not allowed
- 中国研究的超级系统计算机,[公告]超级系统恢复--学习电脑 Book 3 V1.1
- nodejs中的exports和module.exports
- 【Eclipse提高开发速度-插件篇】安装VJET插件,JS等提示开发插件
- java基础 - file类(递归遍历目录)
- uwsgi安装过程中遇到的问题
- weblogic服务器保存图片失败解决办法
- 实例:如何设计一款好的Metro UI应用
- 艾伟:MOSS 2007 项目的开发步骤