PyQt5学习3-第一个按钮

在图形界面中,点击按钮会发出信号,然后与具体的操作连接起来。

1
2
btn = QPushButton()
btn.clicked.connect()

QPushButton

QPushButton 是 PyQt5.QtWidgets 模块提供的按钮部件,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/python3
#-*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QWidget,QPushButton,QApplication,QMessageBox
class ex(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.btn = QPushButton('Hello', self)
self.btn.move(100,100)
self.btn.clicked.connect(self.buttonClicked)
self.setWindowTitle('Hello PyQt5')
self.show()
def buttonClicked(self):
QMessageBox.information(self,"Information","Hello PyQt5")
if __name__ == '__main__':
app = QApplication(sys.argv)
e = ex()
sys.exit(app.exec_())

该程序产生一个窗口中间有一个hello按钮

w1

点击该按钮,出现一个information对话框

w2

QMainWindow

QMainWindow 是 PyQt5.QtWidgets 模块提供主窗口部件,该组件继承于Widget。

通过Widget中的sender()方法可以知道是哪个组件发出的信号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python3
#-*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication
class ex(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn1 = QPushButton('button 1',self)
btn1.move(30,50)
btn2 = QPushButton('button 2',self)
btn2.move(150,50)
btn1.clicked.connect(self.buttonClicked)
btn2.clicked.connect(self.buttonClicked)
self.statusBar()
self.setGeometry(300,300,290,150)
self.setWindowTitle('Envet Sender')
self.show()
def buttonClicked(self):
sender = self.sender()
self.statusBar().showMessage(sender.text() + ' was pressed')
if __name__ == '__main__':
app = QApplication(sys.argv)
e = ex()
sys.exit(app.exec_())

该程序包含两个按钮,当按下按钮时会在窗口下方的状态栏中显示哪个按钮被按下了。

w3