当前位置: 首页 > news >正文

莱芜网站建设价格阿里巴巴网站网络营销的平台

莱芜网站建设价格,阿里巴巴网站网络营销的平台,什么网站做啤酒,软件系统开发合同信号与槽 前言信号与槽单对单直接连接使用lambda表达式 信号与槽多对多一个信号连接多个槽多个信号连接一个槽信号与信号连接 自定义信号 前言 PyQt5的信号与槽是一种对象之间的通信机制#xff0c;允许一个QObject对象发出信号#xff0c;与之相连接的槽函数将会自动执行。… 信号与槽 前言信号与槽单对单直接连接使用lambda表达式 信号与槽多对多一个信号连接多个槽多个信号连接一个槽信号与信号连接 自定义信号 前言 PyQt5的信号与槽是一种对象之间的通信机制允许一个QObject对象发出信号与之相连接的槽函数将会自动执行。信号与槽有以下几个特点 信号可以携带任意个、任意类型的参数。一个信号可以连接多个槽即一个槽可以监听多个信号。信号与槽的连接方式可以是同步连接也可以是异步连接。信号与槽可能会在不同的线程间连接这时信号连接只能是异步方式。信号不是必须有槽和其连接即信号可以不处理。信号个槽的连接可以被断开。 PyQt5使用pyqtSignal函数为QObject对象创建信号并把信号定义为类的属性。使用connect()函数可以将信号绑定到槽函数上使用disconnect()函数可以接触信号和槽之间的绑定。 信号与槽单对单 直接连接 import sys from PyQt5.QtWidgets import *class Window(QWidget):def __init__(self):super(Window, self).__init__()self.btn QPushButton(Start, self)self.btn.clicked.connect(self.change_text)def change_text(self):if self.btn.text() Start:self.btn.setText(Stop)else:self.btn.setText(Start)if __name__ __main__:app QApplication([])window Window()window.show()sys.exit(app.exec()) 在上述代码中创建一个QPushButton对象self.btn并将其文本设置为Start。这个按钮被添加到当前窗口中由self表示。 self.btn.clicked.connect(self.change_text): 当按钮被点击时将调用change_text方法。在change_text的方法中根据当前按钮显示的文字改变为另一个文字。 这个简单的程序创建了一个窗口其中包含一个可以切换其标签的按钮“Start和Stop”。每次点击按钮时都会调用change_text方法来更改其标签。 运行结果如下运行时按钮上的文字是Start按下之后会变成Stop 使用lambda表达式 import sys from PyQt5.QtWidgets import *class Window(QWidget):def __init__(self):super().__init__()btn QPushButton(Start, self)btn.clicked.connect(lambda:btn.setText(Stop))if __name__ __main__:app QApplication([])win Window()win.show()sys.exit(app.exec()) 在上述代码中我们并没有创建新的槽函数只采用lambda表达式来设置按钮的值。不过与上一个方法相比这个代码只能将Start变成Stop但是不能变回Start 运行结果与上种方式相同 信号与槽多对多 一个信号连接多个槽 import sys from PyQt5.QtWidgets import *class Window(QWidget):def __init__(self):super(Window, self).__init__()self.btn QPushButton(Start, self)self.btn.clicked.connect(self.change_text)self.btn.clicked.connect(self.change_size)def change_text(self):if self.btn.text() Start:self.btn.setText(Stop)else:self.btn.setText(Start)def change_size(self):self.btn.resize(150, 30)if __name__ __main__:app QApplication([])win Window()win.show()sys.exit(app.exec()) 在代码中按钮除了连接到了改变按钮文字的槽函数之外还连接到了更换按钮大小的槽函数所以在按下按钮后除了改变了文字还改变了按钮大小。 运行结果如下 多个信号连接一个槽 import sys from PyQt5.QtWidgets import *class Window(QWidget):def __init__(self):super(Window, self).__init__()self.btn QPushButton(Start, self)self.btn.pressed.connect(self.change_text)self.btn.released.connect(self.change_text)def change_text(self):if self.btn.text() Start:self.btn.setText(Stop)else:self.btn.setText(Start)if __name__ __main__:app QApplication([])win Window()win.show()sys.exit(app.exec()) 在上述代码中 当按钮被按下时会触发 pressed 信号连接 pressed 信号到 self.change_text 函数每次按钮被按下时self.change_text 函数都会被调用。 当按钮被释放时会触发 released 信号连接 released 信号到 self.change_text 函数每次按钮被释放时self.change_text 函数都会被调用。 所以self.change_text 函数会在按钮被按下和释放时都被调用。 信号与信号连接 import sys from PyQt5.QtWidgets import *class Window(QWidget):def __init__(self):super(Window, self).__init__()self.btn QPushButton(Start, self)self.btn.pressed.connect(self.btn.released)self.btn.released.connect(self.change_text)def change_text(self):if self.btn.text() Start:self.btn.setText(Stop)else:self.btn.setText(Start)if __name__ __main__:app QApplication([])win Window()win.show()sys.exit(app.exec()) 在上述代码中将pressed连接到released而released连接到了change_text。运行效果和上面代码一致 自定义信号 import sys from PyQt5.QtCore import * from PyQt5.QtWidgets import *class Window(QWidget):my_signal pyqtSignal(int, int)def __init__(self):super().__init__()self.my_signal.connect(self.my_slot)def my_slot(self, x, y):print(x)print(y)def mousePressEvent(self, event):x event.pos().x()y event.pos().y()self.my_signal.emit(x, y)if __name__ __main__:app QApplication([])win Window()win.show()sys.exit(app.exec()) 在PyQt5中mousePressEvent是鼠标按下时会触发的信号我们自己定义的信号self.my_signal与槽函数my_slot相连接当鼠标按下时self.my_signal使用emit触发self.my_signal信号。效果就是点击窗口会输出当前鼠标位置。
http://www.pierceye.com/news/670583/

相关文章:

  • 自己怎么优化网站排名wordpress 自动超链接
  • 建设工程安全监督备案网站wordpress最简易主题
  • 集客营销软件官方网站如何开发微信微网站
  • 青岛谁优化网站做的好微营销工具
  • 怎么才能建立一个网站卖东西php做网站用html做吗
  • 西安公司网站设计费用免费外国网站浏览器
  • 如何加快网站打开速度浦东新区建设机械网站
  • 求网站制作焦作网站建设的公司
  • 用python做网站不常见久久建筑网外墙岩棉保温板施工工艺
  • 做刷票的网站广告牌的样式大全
  • 手机登录网站怎么建设网站风格和功能设计方案
  • 网站报价天津网站在哪里建设
  • 湖北专业网站建设维修电话福清网站商城建设
  • 网站建设模块怎么使用线上注册公司流程和费用
  • 营销型网站设计内容wordpress加速优化插件
  • 设计坞网站官方下载4399网页游戏入口
  • 太原百度网站建设如何联系网站管理员
  • 海东高端网站建设公司视频网站 费用
  • 可以帮别人备案网站吗手机建网站公司
  • 四川建设厅网上查询网站信用网站系统建设方案
  • 克隆网站后台做系统用哪个网站好
  • html5 手机网站页面实例wordpress 路由404
  • 百度地图嵌入公司网站wordpress如何去掉分类里面的大字
  • 山东住房与城乡建设网站够完美网站建设
  • 班级网站建设首页报告如何查询一个网站是否备案
  • 艺术设计类网站石家庄公司的网站设计
  • 舞钢网站建设企业做网站需要什么软件
  • 网站开发上市公司专业的网站建设价格低
  • 备案网站有哪些资料公司名字大全四个字
  • 网站推广预期达到的目标建湖人才网手机版