PyQt5 with Python3 学习笔记(内附YouTube视屏链接)

PyQt5 with Python3 教程(极简易)

YouTube视屏链接

1.建立一个窗口

import sys
from PyQt5 import QtWidgets
# 导入相关的包

def windows():
    app = QtWidgets.QApplication(sys.argv) 
    # 建立一个PyQt程序,sys.argv 表示命令行输入是所带的参数
    w = QtWidgets.QWidget()
    # 建立一个窗口类型为QWidget的窗口
    w.setGeometry(100, 100, 300, 200)
    # 前面两个参数是用于定位窗口在屏幕中的位置,后面两个参数是用于指定窗口大小。
    w.show()
    # 打开窗口
    sys.exit(app.exec_())
    # 关闭程序

windows()

2. Label 控件

import sys
from PyQt5 import QtWidgets
from PyQt5 import QtGui


def windows():
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QWidget()
    w.setWindowTitle("Hello!")
    w.setGeometry(100, 100, 1000, 1000)
    L1 = QtWidgets.QLabel(w)
    L2 = QtWidgets.QLabel(w)
    # 在QtWidgets窗口w中新建一个QLabel
    L1.setText("Python")
    # 设置Label 1 中的文字
    L2.setPixmap(QtGui.QPixmap('test.png'))
    # 设置Label 2 ,利用QtGui.QPixmap调用文件夹中的图片
    L1.move(100,20)
    L2.move(100,100)
    # 设置两个Label的位置
    w.show()
    sys.exit(app.exec_())


windows()

3. PushButton

3.1 添加PushButton控件

import sys
from PyQt5 import QtWidgets


def windows():
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QWidget()
    w.setWindowTitle("Hello!")
    w.setGeometry(100, 100, 300, 200)
    B1 = QtWidgets.QPushButton(w)
    # 在窗口w中新建一个QPushButton控件
    L1 = QtWidgets.QLabel(w)
    B1.setText('Push me')
    # 设置文字
    L1.setText('Hello')
    L1.move(120,50)
    B1.move(100,100)
    # 设置位置
    w.show()
    sys.exit(app.exec_())


windows()

3.2 添加控件布局

import sys
from PyQt5 import QtWidgets


def windows():
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QWidget()
    w.setWindowTitle("Hello!")
    w.setGeometry(100, 100, 200, 200)
    B1 = QtWidgets.QPushButton('Push me')
    # 设置一个标题为Push me的PushButton,暂时不放在窗体w中
    L1 = QtWidgets.QLabel('Hello')
    # 同上,设置一个标题为Hello的Label
    '''
    # 视频中的布局设计
    h_box = QtWidgets.QHBoxLayout()    # 添加一个水平布局
    h_box.addStretch()    # 添加一个可以自由伸缩的空白块,默认宽度为0
    h_box.addWidget(L1)    # 将Label控件添加到水平布局当中
    h_box.addStretch()    # 这一步得到的布局结构是这样子的:|<Stretch>|Label1|<Stretch>|
    v_box = QtWidgets.QVBoxLayout()    # 添加一个垂直布局
    v_box.addLayout(h_box)    # 垂直布局中加入布局h_box
    v_box.addWidget(B1)    # 添加按钮控件PushButton,此时得到的布局结构是这个样子的
    # ——————————
    # h_box
    # ——————————
    # PushButton1
    # ——————————
    w.setLayout(v_box)    # 将设计好的布局放置在窗体w中
    '''
    # 下面的代码是改进的排布
    h1_box = QtWidgets.QHBoxLayout()
    h1_box.addStretch()
    h1_box.addWidget(L1)
    h1_box.addStretch()
    v_box = QtWidgets.QVBoxLayout()
    v_box.addLayout(h1_box)
    v_box.addWidget(B1)
    h_box = QtWidgets.QHBoxLayout()
    h_box.addStretch()
    h_box.addLayout(v_box)
    h_box.addStretch()
    w.setLayout(h_box)
    w.show()
    sys.exit(app.exec_())


windows()

3.2 触发按钮——信号和槽

import sys
from PyQt5 import QtWidgets


class Windows(QtWidgets.QWidget):
    def __init__(self):

        super().__init__()
        # 继承父类
        self.init_Ui()
        # 执行程序

    def init_Ui(self):
       # 控件创建
        self.b = QtWidgets.QPushButton("Push me")
        self.l = QtWidgets.QLabel("Hello")

        # 布局管理
        h1_box = QtWidgets.QHBoxLayout()
        h1_box.addStretch()
        h1_box.addWidget(self.l)
        h1_box.addStretch()

        v_box = QtWidgets.QVBoxLayout()
        v_box.addLayout(h1_box)
        v_box.addWidget(self.b)

        h_box = QtWidgets.QHBoxLayout()
        h_box.addStretch()
        h_box.addLayout(v_box)
        h_box.addStretch()

        self.setLayout(h_box)
        self.setWindowTitle('Hello')

        self.b.clicked.connect(self.pbc_click)
        # 信号触发,clicked(动作),self.pbc_click(所触发的槽函数)
        # 信号和槽函数用connect链接
        self.show()

    def pbc_click(self):
    	# 槽函数,当触发控件信号的时候执行槽函数
        self.l.setText("You have been clicked!")


if __name__ == "__main__":
	# 运行测试程序
    app = QtWidgets.QApplication(sys.argv)
    w = Windows()
    sys.exit(app.exec_())

4. LineEdit

import sys
from PyQt5 import QtWidgets
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值