python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
QWidget基本介绍
基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类。
窗口坐标系统
PyQt使用统一的坐标系统来定位窗口控件的位置和大小,具体如下
以屏幕左上角为原点,也就是(0,0)点,从左向右为x轴正方向,从上向下为y轴正方向,整个屏幕的坐标系统用来定位顶层窗口。
在窗口内部也有自己的坐标系统,该坐标系统以客户区的左上角为原点,从左向右为x轴正方向,从上到下为y轴正方向,在客户区周围有标题栏和边框。
从上图中,可以将这些成员函数分成三类:
- QWidget直接提供的成员函数,x(),y()获得整个窗口左上角的坐标,width()和height()返回客户区的宽度和高度。
- QWidget的geometry()提供的成员函数,x(),y()返回的是客户区左上角坐标,width(),height()返回客户区宽度和高度。
- QWidget的frameGeometry()提供的成员函数,x(),y()返回的是整个窗口左上角的坐标,-width(),height()也是整个对话框的宽度和高度,包括标题栏和边框。
从上图可以看出来,QWidget有两种常见的几何结构
不包含外面各种边框的几何结构(客户区)。
包含各种边框的几何结构。
不包含边框常用函数
改变客户区面积
QWidget.resize(width,height)
获取客户区大小
QWidget.size()
获取客户区的宽度和高度
QWidget.width()
QWidget.height()
设置客户区的宽度和高度(在某些维度上值不可改变)
QWidget.setFixedWidth(intwidth)
QWidget.setFixedHeight(intheight)
QWidget.setFixedSize(intwidth,intheight)
设置窗口的位置(值可以改变)
QWidget.setGeometry(intx,inty,intwidth,intheight)
包含边框常用函数
获取窗口的大小和位置
QWidget.frameGeometry()
设置窗口的位置
QWidget.move(intx,inty)
获取窗口左上角坐标
QWidget.pos()
屏幕坐标系统实例
fromPyQt5.QtWidgetsimportQApplication,QMainWindow,QWidget,QPushButton importsys app=QApplication(sys.argv) #窗口 widget=QWidget() #按钮继承在窗口中,并实例化 btn=QPushButton(widget) #按钮命名 btn.setText('button') #以QWdiget左上角为(0,0)点,按钮移动到坐标处 btn.move(20,20) #不同的操作系统可能对窗口的最小宽度有规定,若设置宽度小于规定值,则会以规定值进行显示 widget.resize(300,200) #以屏幕左上角为(0,0)的点,窗口移动到指定坐标处 widget.move(250,200) widget.setWindowTitle('pyqt坐标系统例子') widget.show() #输出窗口的rect(x,y,width,height) print('QWidget:') #x,y获取窗口左上角的坐标 print('w.x()=%d'%widget.x()) print('w.y()=%d'%widget.y()) #width,height获取客户区的宽度与高度 print('w.width()=%d'%widget.width()) print('w.height()=%d'%widget.height()) #客户区的大小 print('客户区的大小:%d'%widget.size()) print('QWidget.geometry') #x,y获取客户区的左上角坐标(包含窗口的标题与边框部分) print('widget.geometry().x()=%d'%widget.geometry().x()) print('widget.geometry().y()=%d'%widget.geometry().y()) #width,height获取客户区的宽度与高度 print('widget.geometry().width()=%d'%widget.geometry().width()) print('widget.geometry().height()=%d'%widget.geometry().height()) sys.exit(app.exec_())
效果如下图:输出客户区的相关属性
设置程序图标实例
importsys fromPyQt5.QtGuiimportQIcon fromPyQt5.QtWidgetsimportQWidget,QApplication #创造一个名为Icon的窗口类,继承自Qwidget classIcon(QWidget): def__init__(self,parent=None): super(Icon,self).__init__(parent) self.initUI() #初始化窗口 definitUI(self): #设置窗口在屏幕中的位置与窗口的大小 self.setGeometry(300,300,250,150) self.setWindowTitle('程序图标') #设置窗口图标,需要提供图标的路径 self.setWindowIcon(QIcon('E:\pyqt5快速开发与实战\第四章\images\cartoon1.ico')) if__name__=='__main__': app=QApplication(sys.argv) icon=Icon() icon.show() sys.exit(app.exec_())
效果如下:实现了程序左上角图标的加载
显示气泡提示信息实例
importsys fromPyQt5.QtGuiimportQFont fromPyQt5.QtWidgetsimportQWidget,QApplication,QToolTip classWinForm(QWidget): def__init__(self,parent=None): super(WinForm,self).__init__(parent) self.initUI() definitUI(self): #设置气泡提示信息的字体和大小 QToolTip.setFont(QFont('SansSerif',10)) #设置气泡提示 self.setToolTip('这是一个气泡显示') self.setGeometry(200,300,400,400) self.setWindowTitle('气泡提示demo') if__name__=='__main__': app=QApplication(sys.argv) win=WinForm() win.show() sys.exit(app.exec_())
本文详细介绍了PyQt5窗口控件QWidget详细使用方法,要了解更多关于这方面的知识请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。