pyqt5学习(四)事件和信号
2016-11-24 16:52
176 查看
顾名思义:事件就是执行的东西,信号就和触发类似吧,是一种动作
QLCDNumber类:类似于QLable是一种显示标签,一般好像多用于显示时间
QSlider类:滑动条类
QtCore:包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用。
2.重构事件处理器
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_())
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_())
相关文章推荐
- pyqt5学习(四)事件和信号
- 事件之信号量
- PyQt 4.5+控件的信号槽事件定义方法
- Python Signal(信号) 异步系统事件
- PyQt5教程(四)——事件与信号
- PyQt 4.5+控件的信号槽事件定义方法 - 静滞之境 - 开源中国社区
- Qt捕捉窗口关闭事件与信号的捕捉
- windows程序事件的信号状态和非信号状态
- Qt源码分析-事件如何触发信号
- PyQt4学习笔记2:事件和信号
- Python Signal(信号) 异步系统事件
- PyQt5每天必学之事件与信号
- Qt中消息信号与事件的总结
- Qt事件和信号的区别
- QT源码解析(六)Qt信号槽机制与事件机制的联系
- QT多线程及通过事件进行通信(通过自定义事件,然后QApplication::postEvent给主界面,我之前用的是信号槽)
- 信号和事件--事件篇
- pyqt重写键盘事件+获取信号发送对象
- Qt学习--事件/信号
- 14_自定义控件的事件与信号