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

案例一 (创建窗口)

代码如下:

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_())

运行会显示如下图一些数据,窗口的坐标,大小等。
PyQt5的学习笔记一———基本的窗口控件

案例五(建立主窗口)

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快速开发与实战》,写下这些笔记是增加我的印象,同时也是供我参照。如有侵权,联系删除。

上一篇:Qwidget::update


下一篇:c – QScrollArea与QWidget和QVBoxLayout无法正常工作