首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PyQt5编程基础 2.2 信号与槽函数-绑定组件事件

PyQt5编程基础 2.2 信号与槽函数-绑定组件事件

原创
作者头像
会洗碗的CV工程师
发布2023-11-27 00:48:24
发布2023-11-27 00:48:24
5050
举报
文章被收录于专栏:LongJava学习资料LongJava学习资料

Bold复选框

编写代码

进入Qt Creator,为Bold复选框设置槽函数,选toggled(bool)

记下函数名

在myDialog.py文件的QmyDialog类里定义一个同名函数,并且具有相同类型的参数

运行程序

选择Bold复选框

可以看到里面字体加粗了

取消Bold复选框

字体没有加粗了

Underline复选框

编写代码

在Qt Creator中为Underline复选框添加槽函数,选择clicked()

在Ui_Dialog.py中添加如下函数

修改Ui_Dialog.py中的SetupUI函数

修改后变成

运行程序

选中Underline

信号与槽的管理是如何实现的

在QmyDialog类里定义了三个函数,这三个函数就与相应界面组件的信号关联起来了

在QmyDialog类的构造函数里并没有任何代码实现信号与槽的关联,Ui_Dialog也没有做任何修改。这些信号与槽的关联是怎么实现的?

看Ui_Dialog.py的SetupUi()函数的这一条语句

功能是搜索Dialog窗体上的所有从属组件,将匹配的信号和槽函数关联起来。只有符合命名规则的槽函数才会被匹配。不符合命名规则的函数不能自动与信号关联。

overload型信号的处理

Italic复选框

找到槽函数名

在Qt Creator中为Italic复选框设置槽函数,选择clicked(bool)

注意有一个clicked(),还有一个clicked(bool)。这两个都是clicked信号。默认情况下,connectSlotsByName只会关联默认的不带参数的clicked信号,不会关联带参数的clicked(bool)信号

要解决这个问题,需要使用@pyqtSlot修饰符,将函数的参数类型声明清楚

编写代码

在Ui_Dialog.py中添加如下函数

有警告,是因为import少了模块

这是myDialog.py中原有的import

添加import 模块

加了后,上面代码中的警告取消了

运行程序

手动关联信号与槽函数

实现设置颜色的三个RadioButton按钮的clicked()信号与同一个槽函数关联

添加import模块

添加自定义槽函数

在QmyDialog类里顶一个自定义槽函数do_setTextColor(self)

在构造函数中关联信号和槽函数

这就将三个RadioButton的clicked信号与同一个槽函数关联起来了

运行程序

补丁

问题

突然发现RadioBlue的text属性错了,郁闷

返回Qt Creator中将RadioBlue的text改为Blue

保存ui文件后,将e:\baikejia\bkj2-3\QtApp目录的Dialog.ui拷贝到e:\baikejia\bkj2-3下,覆盖原Dialog.ui文件

记得要在Eric6下重新编译form

运行出错

重新运行,发现报错

这是因为重新编译了ui文件,导致ui_Dialog.py文件内容更新,刚才在里面放的do_setTextEdit被冲掉了。只好补回去

补充代码

运行程序

终于好了。注意要运行appMain.py,不要运行Ui_Dialog.py

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Bold复选框
    • 编写代码
    • 选择Bold复选框
    • 取消Bold复选框
  • Underline复选框
    • 编写代码
  • 运行程序
  • 信号与槽的管理是如何实现的
  • overload型信号的处理
    • Italic复选框
      • 找到槽函数名
      • 编写代码
    • 运行程序
  • 手动关联信号与槽函数
    • 添加import模块
    • 添加自定义槽函数
      • 在构造函数中关联信号和槽函数
    • 运行程序
  • 补丁
    • 问题
    • 运行出错
      • 补充代码
    • 运行程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档