ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PyQt5的学习笔记一———基本的窗口控件

2019-06-09 09:55:11  阅读:200  来源: 互联网

标签:__ 控件 widget 窗口 self 笔记 sys PyQt5 QWidget


案例一 (创建窗口)

代码如下:

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtGui import QIcon

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        #这个是代表建立的窗口大小。
        self.resize(800, 600)
        #使用statusBar()方法创建状态栏
        self.status = self.statusBar()
        #窗口中输出的文字,后面的5000代表在窗口停留的时间
        #相当于五秒后提示的文字就会消失。
        self.status.showMessage("这是垃圾程序", 5000)
        #显示窗口的名称。
        self.setWindowTitle(" cxk")
        
if __name__=="__main__":
    app=QApplication(sys.argv)
    #将文件中的图片作为程序的图标icon
    app.setWindowIcon(QIcon("./images/185400-152586324092fa.jpg"))
    form = MainWindow()
    #显示出窗口。
    form.show()
    sys.exit(app.exec_())
    

按例二(主窗口居中)

代码如下:

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QDesktopWidget
class Winform(QMainWindow):
    def __init__(self, parent=None):
        super(Winform, self).__init__(parent)
        self.setWindowTitle('主窗口放中央')
        self.resize(750, 450)
        self.center()
    
    def center(self):
        screen = QDesktopWidget().screenGeometry()
        #用来获取窗口的大小。
        size =self.geometry()
        #将窗口移动到屏幕中间,screen.height()/screen.width()计算屏幕的大小
        self.move((screen.width() - size.width())/2, (screen.height() - size.height())/2)

if __name__=="__main__":
    app = QApplication(sys.argv)
    win = Winform()
    win.show()
    sys.exit(app.exec_())

案列三(关闭窗口)

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QHBoxLayout, QPushButton, QWidget
class WinForm(QMainWindow):
    def __init__(self, parent=None):
        super(WinForm, self).__init__(parent)
        self.setWindowTitle('沙雕式关闭窗口')
        self.buttonl = QPushButton('关闭主窗口')
        self.buttonl.clicked.connect(self.onButtonClick)
        #将窗口关闭。
        self.buttonl.clicked.connect(self.close)
        layout = QHBoxLayout()
        layout.addWidget(self.buttonl)
        main_frame = QWidget()
        main_frame.setLayout(layout)
        self.setCentralWidget(main_frame)
    def onButtonClick(self):
        #sender 是发送信号的对象。发送的对象是buttonl按钮。
        sender =self.sender()
        print(sender.text()+'被按下了')
        
        qApp =QApplication.instance()
        qApp.quit()
        
if __name__=="__main__":
    app=QApplication(sys.argv)
    form =WinForm()
    form.show()
    sys.exit(app.exec_())

QWidget常用的几何机构。

一:QWidget不包含边框的床用函数。

(一)改变客户区的面积

QWidget.resize(Width,height)
QWidget.resize(QSize)

这两个函数改变了长方形的大小,其中第一个参数是宽度,第二个参数是高度。设置了大小的窗口,还可以通过鼠标来改变。
(二)获得客户区的大小

QWidget.size()

(三)获得客户区的宽度和高度

QWidget.width()
QWidget.height()

(四)设置客户区的宽度和高度

QWidget.setFixedWidth(int width)

使用这个函数,客户区的高度是固定的,不可改变,这可改变宽度。

QWidget.setFixedWidth(int height)

现在宽度是固定的,可以改变高度。

QWidget.setFixedWidth(QSize size)
QWidget.setFixedWidth(int width , int height)

通过上面的两个函数,高度和宽度都是固定的,不可以通过鼠标改变,如果要同时改变客户区的大小个位置,可以使用下面的函数

QWidget.setGeometry(int x,int y,int width,int heidht)
QWidget.setGeometry( QRect rect)

x和y对应的是x和y坐标,,可以不单独设置x和y坐标。

二、QWidget包含边框的常用函数。

(一)获得窗口的大小和位置。

QWidget.frameGeometry()

(二)设置窗口的位置

QWidget.move(int x,int y)
QWidget.move(QPoint point)

(三)获得窗口的左上角的坐标

QWidget.pos()

案例四(屏幕坐标系统显示)

import sys
from PyQt5.QtWidgets import QPushButton, QApplication, QWidget
app = QApplication(sys.argv)
widget= QWidget()
btn=QPushButton(widget)
btn.setText("Button")
#以QWidget左上角为(0,0)点
btn.move(20, 20)
widget.resize(300, 250)
#以屏幕左上角作为(0,0)点
widget.setWindowTitle('坐标例子')
widget.show()
print("QWidget:")
print("w.x()=%d"%widget.x())
print("w.y()=%d"%widget.y())
print("w.width()=%d"%widget.width())
print("w.height()=%d"%widget.height())
print("QWidget.geometry")
print("widget.geometry().x()=%d"%widget.geometry().x())
print("widget.geometry().y()=%d"%widget.geometry().y())
print("widget.geometry().width()=%d"%widget.geometry().width())
print("widget.geometry().height()=%d"%widget.geometry().height())

sys.exit(app.exec_())

运行会显示如下图一些数据,窗口的坐标,大小等。
在这里插入图片描述

案例五(建立主窗口)

import sys
from PyQt5.QtWidgets import QApplication, QWidget

#每一个pyqt5程序都需要一个QApplication对象,QApplication类包含在QtWidgets模块中。
#sys.argv是一个命令行参数列表。python脚本可以从shell中执行
app = QApplication(sys.argv)
window=QWidget()
#窗口的大小
window.resize(450, 400)
#窗口移动到相对于屏幕的坐标位置。
window.move(450, 250)
#主窗口的名称
window.setWindowTitle("hello pyqt5")
#显示窗口
window.show()
sys.exit(app.exec_())

声明

上面这些代码都是我在参照课本学习时敲的,都是来自王硕、孙洋洋著的《PyQt5快速开发与实战》,写下这些笔记是增加我的印象,同时也是供我参照。如有侵权,联系删除。

标签:__,控件,widget,窗口,self,笔记,sys,PyQt5,QWidget
来源: https://blog.csdn.net/qq_44920726/article/details/91129899

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有