当前位置: 首页 > 面试题库 >

PyQt在连接信号时将参数发送到插槽

尉迟高澹
2023-03-14
问题内容

我有一个任务栏菜单,单击该任务栏菜单将其连接到获取触发事件的插槽。现在的问题是,我想知道单击了哪个菜单项,但是我不知道如何将该信息发送到连接的功能。这是用于将操作连接到功能的代码

QtCore.QObject.connect(menuAction, 'triggered()', menuClickedFunc)

我知道有些事件会返回一个值,但是Trigger()不会。那么我该如何实现呢?我必须发出自己的信号吗?


问题答案:

用一个 lambda

这是PyQt书中的一个示例:

self.connect(button3, SIGNAL("clicked()"),
    lambda who="Three": self.anyButton(who))

顺便说一句,您也可以使用functools.partial,但是我发现该lambda方法更加简单明了。



 类似资料:
  • 问题内容: 我有以下代码,该代码在更新ui()中的进度条时执行后台操作()。迭代in中的某个值,每次更改该值都会发出一个信号()。由于此处不相关的原因,我必须将其包装在另一个线程的对象()中。当一个按钮扫描仪被称为是。这是我的问题……以下代码可以正常工作(即进度条会及时更新)。 但是,如果我将最后一部分更改为: 进度条仅在最后更新(我猜是所有东西都在同一线程上运行)。在将对象接收对象移动到线程之前

  • 问题内容: 我正在通过制作一个简单的Twitter客户端来练习PyQt和(Q)线程。我有两个Qthread。 主/ GUI线程。 Twitter提取线程-每隔X分钟从Twitter提取数据。 因此,每隔X分钟,我的Twitter线程就会下载一组新的状态更新(Python列表)。我想将此列表移交给Main / GUI线程,以便它可以使用这些状态更新窗口。 我假设我应该使用信号/插槽系统将“状态” P

  • 问题内容: 某些小部件将允许我执行以下操作: 但这样做: 无法说对象没有属性“连接”。 我知道子类化小部件并重新实现该方法将使我能够响应事件。但是,如何从用户上下文来看此后的键盘事件或以其他方式说呢? 问题答案: 创建一个自定义信号,并从重新实现的事件处理程序中发出它: (注意:为了保持事件的现有处理,需要调用基类实现)。

  • 问题内容: 我正在使用自定义信号处理程序在自定义Java守护程序中捕获TERM,ABRT和INT信号。我在代码中有此处理程序,以便可以向其发送TERM信号,并通过kill命令正常关闭程序。信号处理程序现在可以正常工作,但是当我编译代码时,我收到以下警告(很多次): 警告:sun.misc.SignalHandler是Sun专有的API,将来的发行版中可能会删除它。 在使用这些类时: 有没有更好的方

  • 问题内容: 我有一个用于更新数据库表的对象,但是它不能正确解释我的空值。 这是SQL: 我已经尝试过像这样可以为空的null合并参数,但是我没有取得任何成功。除非另有说明,否则所有参数均为字符串: 我得到这样的异常: 在将每个参数添加到SqlCommand对象以设置DbNull.Value(如果参数值为null)之后,我还尝试遍历每个参数,如下所示: 但是,这种方法导致异常: 将空参数传递给a的最

  • 我将AWSSDK用于Java,其中我将数据从AWS Lambda发送到SQS。 我们遇到异常: 代码: 背景我们正在尝试做什么: 我们有一个主Lambda函数,用于创建和初始化SQS队列,并包含应该处理的每个记录的详细信息。现在,SQS队列需要设置为从队列中创建X个消息的批,并为每个批自动调用另一个SQS Lambda函数。