signals-slots相关内容

在循环中连接 PyQt4 中的插槽和信号

我正在尝试使用 PyQt4 构建一个计算器,但连接来自按钮的“clicked()"信号没有按预期工作.我在 for 循环中为数字创建按钮,然后我尝试将它们连接起来. def __init__(self):对于范围内的 i (0,10):self._numberButtons += [QPushButton(str(i), self)]self.connect(self._numberButton ..
发布时间:2021-06-24 19:49:45 Python

Qt 设计器 UI (python) 到 JSON

我最近开始使用 qt 来构建 Python GUI.我有两个问题,我无法完全找到解决方案.下面的代码是我需要构建的示例. 1:检查垂直布局中的单选按钮列表中的哪个单选按钮已被单击.在 GUI 中,它仅从布局中的所有其他可用单选按钮中选择一个.我怎么知道哪个被点击了? 2:我想将单击的值添加到 JSON 对象中,但我相信这是一个简单的 if 语句,即 if this then that. ..
发布时间:2021-06-24 19:48:54 Python

用PyQt5,实现两个窗口永远自动循环

使用 PyQt5,我想实现一个两个窗口,一个接一个地自动显示,而无需用户与任何窗口交互.像这样: 虽然为真:显示窗口 1等待 2 秒关闭窗口 1显示窗口 2等待 2 秒关闭窗口 2 我遇到的问题是主UI线程卡在app.exec_()函数中,无法实现开启关闭逻辑. 导入系统从 PyQt5.QtWidgets 导入 *从 PyQt5 导入 uic类 Win1(QMainWindow):def _ ..
发布时间:2021-06-24 19:44:11 Python

PyQT 中的多对话框程序不会关闭(续集!)

我有另一个 PyQT 问题,这次我有一个更有用的例子,因为它包含我的部分代码(当然是去角化的!)我很难弄清楚如何关闭“程序选择"对话框窗口仅使用“注销"按钮.我可以简单地使用表单上的关闭按钮,但我想使用“注销"按钮来完成. 谁能帮我解决这个难题? 这里有一些可编译的代码供大家阅读. connectionName = 'example'类 SelectProgramForm(QtGui ..
发布时间:2021-06-24 19:42:44 其他开发

解决与 PyQt 新式信号槽的冲突

QComboBox 有两个信号,都称为 currentIndexChanged;一个传递所选项目的索引,另一个传递所选项目的文本.当我将此信号连接到我的插槽时,使用诸如 self.myComboBox.currentIndexChanged.connect(self.mySlot) 之类的东西,它会给我一个索引.有没有办法可以使用新样式的信号来指示我希望返回文本? 解决方案 参见 连接信号 ..
发布时间:2021-06-24 19:25:03 其他开发

信号和插槽 PyQt 澄清

我注意到有很多用户,包括我自己,不太了解 Qt 中信号和槽的概念.我希望得到一些关于以下方面的澄清: #我有一个函数,它在构建 GUI 后立即运行,它从以下位置获取信息#a list 并将其放入一个字符串中,然后将其上传到 texbox.在这个底部#loop,我希望它通过信号和槽调用父线程中的函数,如#其他用户推荐. class MainWindow(QtGui.QMainWindow):#构 ..
发布时间:2021-06-24 19:23:27 Python

PySide/PyQT5:如何从 QGraphicsItem 发出信号?

我想在双击时从 QGraphicsItem 发出信号,以便更改主窗口中的小部件.graphics-scene/-item 不提供 emit() 方法,但我只是想知道是否有其他方法可以做到这一点.下面的代码在 QGraphicsView 类中有一个函数,当双击一个项目时,该函数将打印到终端.我怎样才能把它变成一个插槽/信号(如果 QGraphicsItem 不支持信号/插槽)? 导入系统从 PyS ..
发布时间:2021-06-24 19:23:18 Python

Swing - 替换 Qt 信号/插槽

在 Qt GUI 中,使用信号和信号非常方便.插槽 - 它解耦事件传递.当我创建一些抛出信号的小部件时,我不必事先知道谁可以得到它,然后用 connect 指定连接. Java/Swing 中的并行是什么?你能指出关于这个问题的好资源吗? 解决方案 如果现有 EventListener 实现满足您的要求,您可以创建自己的自定义事件.每个 JComponent 包含 EventList ..
发布时间:2021-06-24 19:18:28 Java开发

为什么 PyQt 执行我的操作三次?

我还是 PyQt 的新手,但我真的不知道为什么会这样. 我有一个像这样创建的主窗口: class MainWindow(QtGui.QMainWindow):#初始化def __init__(self):#调用父构造函数super(MainWindow, self).__init__()#加载接口self.ui = uic.loadUi(r"Form Files/rsleditor.ui" ..
发布时间:2021-06-24 19:17:26 Python

在标准 python 线程中发出信号

我有一个线程应用程序,其中有一个网络线程.UI 部分将 callback 传递给该线程.该线程是普通 python 线程 - NO QThread. 是否可以在此线程中发出 PyQT Slot? 解决方案 不,像这样从 python 线程发出 PyQt 信号是不可能的. 然而,一个可能的解决方案是使用共享的额外对象两个线程,进行必要的操作以最终发出线程安全PyQt 信号. ..
发布时间:2021-06-24 19:17:23 Python

将 python 函数作为信号直接应用到 Qt 设计器

我是 Qt 和 GUI 编程的新手,但我已经在 python 中进行了大量编码 - 编写模块等.我需要为我的一些旧模块开发简单的 GUI. 我正在尝试做的事情可以用以下简单示例表示: def f(x, y):z = x + y返回 z 对于这个函数,我将为 x 和 y 提供两行编辑,对 z 进行一次编辑.现在我创建一个按钮“计算",当我这样做时,我希望它从行编辑中获取 x 和 y 运行函 ..
发布时间:2021-06-24 19:16:19 Python

PyQt 和 QSignalMapper/lambdas - 多信号,单槽

我在 PyQt 的菜单上有一个操作列表,我想显示的每个不同提要都有一个.所以我有一个 Y 将活动提要设置为 Y,Z 将其设置为 Z,等等(对于网络漫画阅读程序). 我在菜单上都有,我觉得自动化的方法可能更好;而不是每次都打字.类似于将其添加到字典中的函数,然后将其与每个插槽的信号连接起来. 但是,我想要那个槽函数,比如说它叫做 Foo,接受一个参数来决定点击了什么.所以如果 X 被点击 ..
发布时间:2021-06-24 19:07:54 Python

PyQt:如何从 QThread 获取 UI 数据

我有以下代码,但它抱怨我无法从我的线程访问 UI 数据.在下面的示例代码中,访问 userInputString 值以便线程可以运行的最佳方法是什么? self.nameField 是 PyQt QLineEdit. QObject::setParent:无法设置父级,新的父级在不同的线程中 QPixmap:在 GUI 线程之外使用像素图是不安全的 QWidget::repaint ..
发布时间:2021-06-24 19:04:28 Python

PyQt4 @pyqtSlot:kwarg 的结果是什么?

通过阅读这篇,两个问题来了: 1.它说 有时需要将 Python 方法显式标记为一个 Qt 插槽 虽然我总是使用 @pyqtSlot 装饰器,因为它说: 将信号连接到修饰的 Python 方法也有减少内存使用量的优势,速度稍快 我问自己:在哪些特定情况下是必要的?以及:不使用 @pyqtSlot 装饰器有什么好处吗? 2.结果关键字参数,它的用途是什么? @p ..
发布时间:2021-06-24 19:03:53 Python

从字符串列表创建 PyQt 菜单

我有一个字符串列表,想为每个字符串创建一个菜单项.当用户单击其中一个条目时,将始终以字符串作为参数调用相同的函数.经过一些尝试和研究,我想出了这样的事情: 导入系统从 PyQt4 导入 QtGui、QtCore类 MainWindow(QtGui.QMainWindow):def __init__(self):QtGui.QMainWindow.__init__(self)self.menuba ..
发布时间:2021-06-24 19:01:19 Python

在pyqt的for循环中连接多个信号/插槽

我在 PyQt 中使用 for 循环 连接多个信号/插槽.代码如下: # 连接扫描回调对于 ['phase', 'etalon', 'mirror', 'gain'] 中的按钮:getattr(self.ui, '{}_scan_button' .format(button)).clicked.connect(拉姆达:self.scan_callback(按钮)) 我的期望: 连接按钮p ..
发布时间:2021-06-24 18:59:51 Python