首页 > TAG信息列表 > signals-slots

python-pyqt:将多个信号连接到pyqt中的同一函数的正确方法(QSignalMapper不适用)

>我已经准备好许多关于如何将多个信号连接到python和pyqt中的同一事件处理程序的文章.例如,将多个按钮或组合框连接到同一功能. >许多示例显示了如何使用QSignalMapper进行此操作,但是不适用于信号带有参数的情况,例如combobox.currentIndexChanged>许多人建议可以用lambda制成.我

变量值更改时的PyQt事件

我有一个变量t t = 0 每当t值更改时,我都想开始一个事件. 怎么样 ?没有valuechanged.connect属性或任何变量…解决方法:对于全局变量,仅使用赋值是不可能的.但是对于属性来说,它非常简单:只需使用property(或__getattr__/__setattr__)即可.这有效地将赋值转换为函数调用,使您可以添加

python-如何在基于事件的QTreeView中启用/禁用项目?

我想在发送特定信号时启用/禁用QTreeWidget中的可检查项. 以下代码行不起作用: model = QStandardItemModel() view = QTreeView() view.setModel(model) rootItem = QStandardItem() rootItem = model.invisibleRootItem() categoryItem = QStandardItem(item) categoryItem.setC

python-PyQT4 signal.connect是否使对象保持活动状态?

如果我有一个信号并在该信号上注册了一个对象函数,这将使该对象保持活动状态并停止该对象的垃圾回收吗? 例如. class Signals(): signal = Qt.pyqtSignal() def __init__(self): QObject.__init__(self) class Test(); def __init__(self, s): s.conn

c-异步调用插槽,而无需使用清晰的代码行连接到插槽

我遇到了非常怪异的错误-QAction :: trigger导致出现阻塞对话框,这导致我的服务器调用了触发卡住(例如,直到对话框关闭后才能处理套接字信号). 我想出了一种解决方法.我使用Qt :: QueuedConnection将信号void triggerWorkaround()连接到插槽QAction :: trigger,然后发出它: QObject

c-启动多个线程并重新启动它们

我正在尝试对创建x个工作线程的系统进行编程.这些线程将在不同的时间完成工作.当它们中的任何一个完成工作时,我将检查它们的输出并再次重新启动它们(将运行线程数保持在x左右).我将在许多不合时宜的迭代中执行此操作.因此,基本上,一个控制器线程将启动x个线程,并在完成工作后重新

是否可以在C QObject :: connect()中连接QML对象的现有信号?

QML TreeView的信号名为:doubleClicked(QModelIndex) 参考:https://doc.qt.io/qt-5.10/qml-qtquick-controls-treeview.html#doubleClicked-signal 它可以将现有信号连接到C QObject :: connect()中. 我尝试了这个: QQmlApplicationEngine engine; QObject *myTreeMenu = engine.root

如何在PyQt4进程中使用多核python?

我正在pyqt4中编写一个必须读取并解析许多xml文件的应用程序.完成单线程处理需要花费一些时间来完成所有解析,并制作与该传入xml相对应的数千个python对象.我已经分析了代码,据我所知它是计算的,而不是I / O的. 我想使用工人农场模型(python中的?Process.Pool)将应用程序转换为多核

c-增强信号2自动连接管理并更改信号的互斥锁类型

我正在尝试将automatic connection management和changing the mutex type of a signal用于模板功能. 以下代码使用gcc-4.3.4进行编译和执行. (http://ideone.com/LLN6d) #include <boost/signals2.hpp> #include <boost/enable_shared_from_this.hpp> #include <stdio.h> class S

python – Pycharm调试器适用于Ubuntu,但不能在Windows上使用相同的代码

更新:跟踪问题here 编辑:我可能不是唯一有此问题的人.我错过了今天发布的这个看起来很相关:PyCharm debugger doesn’t work 下面是一个在使用Pycharm Professional时在Windows 7和Ubuntu 14.04上运行良好的最小示例 PyCharm 2016.1 Build #PY-145.260, built on March 22, 2016 JRE:

c – Qt:如何为所有小部件和小部件类型(通过虚拟基类槽)实现通用的基类信号/插槽功能?

我想从基类小部件派生我的所有小部件,该小部件自动在类的插槽和(很少调用的)信号之间建立信号/插槽连接. 插槽是一个虚拟功能,因此我希望实现自定义功能的任何小部件都可以从虚拟插槽功能派生.在所需的场景中,我的所有小部件都将从具有虚拟插槽的基类派生,因此默认情况下,我的所有

c – 从Qt中的静态类方法发送信号

我试图编写一个静态回调函数,该函数经常从同一个类中的另一个静态函数调用.我的回调函数需要发出一个信号但由于某种原因它根本就没有这样做.我把它放在调试器下,插槽永远不会被调用.但是,当我放置用于在非静态函数中发出数据的代码时,它可以工作.有没有理由我不能从静态函数发出信

python – PyQt Widget connect()和disconnect()

根据条件,我想将按钮连接/重新连接到不同的功能. 假设我有一个按钮: myButton = QtGui.QPushButton() 对于这个例子,假设我检查是否有互联网连接. if connected == True: myButton.clicked.connect(function_A) elif connected == False: myButton.clicked.connect(func

python – lambda中对象的生命周期连接到pyqtSignal

假设我有一个对象,并希望在发出PyQt信号时执行其中一个方法.并且假设我希望它使用未通过信号传递的参数来执行此操作.所以我创建一个lambda作为信号的槽: class MyClass(object): def __init__(self, model): model.model_changed_signal.connect(lambda: self.set_x(m

python – PyQt正确使用emit()和pyqtSignal()

我正在阅读有关PyQt5的一些文档,以提出一个简单的信号槽机制.由于设计考虑,我已经停止了. 请考虑以下代码: import sys from PyQt5.QtCore import (Qt, pyqtSignal) from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider, QVBoxLayout, QApplication) class Example(Q

c – QT:模板化Q_OBJECT类

是否有可能有一个模板类,它继承自QObject(并在其声明中有Q_OBJECT宏)? 我想创建像插槽适配器这样的东西,它会做一些事情,但插槽可以采取任意数量的参数(参数的数量取决于模板参数). 我只是尝试这样做,并得到链接器错误.我猜这个模板类没有调用gmake或moc.有没有办法做到这一点?也许通

C信号到Qt中的QML插槽

我想在CML文件中将信号从C发送到插槽. 我已经让它在没有和原始类型参数的情况下工作,但是如果我想将QString发送到我的QML Slot,我在连接时会出错. 我在main.cpp中连接 QObject *contentView = rootObject->findChild<QObject*>(QString("contentView")); QObject::connect(&myObj

如何对QtTreeView上的键盘选择做出反应?

QTreeView具有单击的信号,但不像QTreeWidget那样具有itemChanged.我必须使用QTreeView,因为它是“基于模型的”.但是,如果我的用户选择了一个包含keyborad的行,则不会发送clicked,也不会调用我的回调.我应该注册什么信号?解决方法:QTreeView类继承QAbstractItemView,它提供对selecti

python – 如何防止PySide信号和插槽尝试将二进制字符串数据转换为Unicode?

PySide信号和插槽似乎在静默地将我的二进制字符串转换为unicode.我怎么能避免呢?或者,如何在没有PySide变异的情况下通过信号槽接口传递二进制数据? from PySide import QtCore class Thingy(QtCore.QObject): data = QtCore.Signal(str) @QtCore.Slot(str) def printdata(x):

python – 正确使用PyQt信号

不久前我在Qt for C中做了一些工作;现在我正在使用PyQt. 我有一个QStackedWidget的子类,里面是QWidget的子类.在QWidget中,我想单击一个按钮,该按钮将转到QStackedWidget的下一页.我的(简化)方法如下: class Stacked(QtGui.QStackedWidget): def __init__(self, parent=None):

python – 使用QSignalMapper和实例方法将PySide连接到信号

我有一个带桌子的小应用程序.该表在每行上都有一些数据和一个按钮.这些按钮应允许用户删除相应的行数据.我试图通过点击按钮信号来实现它,但我需要传递行号,所以我尝试使用QSignalMapper,如下面的摘录所示 btnRemoveItem = QPushButton() btnRemoveItem.clicked.connect(self.remo

c – Qt:连接内部构造函数 – 在初始化对象之前是否会调用slot?

我正在学习Qt框架(C),并想知道QT是否有任何机制来保护插槽在对象完全初始化之前被调用. 考虑A类构造函数: A::A() { mTreeView = new QTreeView(); ... connect(mTreeView, &QTreeView::customContextMenuRequested, this, &A::OnContextMenuRequested); .

c – 如何在QT上暂停和重启Qtimer

我有一个Ubuntu,我在C上使用IDE QT. 我将暂停并恢复Qtimer,例如: void Ordonnancer_les_taches::on_pushButton_clicked() { connect(&dataTimer, SIGNAL(timeout()), this, SLOT(l_odonnancement())); dataTimer.start(5000); } 如何暂停以及如何重启?给我一个例子解决方

c – Qt信号和不同类别的插槽

我有一个带有插槽的X类,带有信号的Y类.我正在从类X建立连接,并在类Y中创建一个公共方法来从类X发出信号(我不确定这一步是否必要). 然后,如果我从类X调用该方法,则发出信号,并执行插槽.但是如果我从Y类发出信号,那么插槽永远不会执行,我不明白为什么. 我也可以在Y级坚持联系吗? 这个

c – Qt:信号槽通过const参考

许多qt示例做了以下事情: signal: passByConstRef(const QImage &) slot: receivedByConstRef( const QImage &) 它们通过不同线程中的排队连接进行连接. 在主题1中: {QImage image; image = fromData(...); emit passByConstRef(image); } 在主题2中: receivedByConstRef(con