PyQt5 with Python3 教程(极简易)
YouTube视屏链接
1.建立一个窗口
import sys
from PyQt5 import QtWidgets
def windows():
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.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)
L1.setText("Python")
L2.setPixmap(QtGui.QPixmap('test.png'))
L1.move(100,20)
L2.move(100,100)
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)
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')
L1 = QtWidgets.QLabel('Hello')
'''
# 视频中的布局设计
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)
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