顾名思义:事件就是执行的东西,信号就和触发类似吧,是一种动作
QLCDNumber类:类似于QLable是一种显示标签,一般好像多用于显示时间
QSlider类:滑动条类
QtCore:包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用。
# -*- coding=utf-8 -*-预览图:
from PyQt5.QtWidgets import QWidget,QApplication,QLCDNumber,QSlider,QVBoxLayout
from PyQt5.QtCore import Qt
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lcd = QLCDNumber(self)#数字
sld = QSlider(Qt.Horizontal,self) #水平拖动条
vbox = QVBoxLayout() #建立一个垂直布局
vbox.addWidget(lcd) #加入布局
vbox.addWidget(sld)
self.setLayout(vbox) #固定布局
sld.valueChanged.connect(lcd.display)#将水平拖动条的变化和数字连接起来
self.setGeometry(300,300,300,300)
self.setWindowTitle(u'宋存最美')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
2.重构事件处理器
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Event handler')
self.show()
def keyPressEvent(self, e):#接受一个事件e
if e.key() == Qt.Key_Escape: #如果e的键值为ESC,则关闭
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
3.事件发送
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QWidget, QApplication,QPushButton,QMainWindow
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn1 = QPushButton('Button1',self) #创建self
btn1.move(30, 50)
btn2 = QPushButton('Button2',self)
btn2.move(150, 50)
btn1.clicked.connect(self.buttonClicked)
btn2.clicked.connect(self.buttonClicked)
self.statusBar()
self.setGeometry(300,300,300,300)
self.setWindowTitle('Event sender')
self.show()
def buttonClicked(self):
sender = self.sender()
self.statusBar().showMessage(sender.text() + 'was pressed ' )
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())