signals-slots相关内容

Qt-使用Lambda将插槽与参数连接

我有几个小部件,这些小部件将连接到需要额外参数的单个函数. 我发现我可以在适当的地方使用lambda函数来传递该函数一些参数. 问题在于循环中的参数已被替换,而lambda函数仅传递最后一组参数. 这是我得到的: self.widgets 是带有一组按键的字典,简而言之,我们假设它有2个按键[QToolButton],它们链接到它们的按键:“播放"和“停止" def ..
发布时间:2021-02-15 21:04:30 Python

如何通过键盘为QTableWidget创建信号?

我有一张桌子,并用向左,向右,向上,向下按钮在内部移动.现在,当我停留在某个单元格中并按空格键时,需要创建一个信号.该信号还应带来该单元的坐标.我尝试使用QTableWidget的标准信号,但是它不起作用.我该如何解决? 解决方案 创建一个单独的头文件,即"customtable.h",然后在设计器中将现有的QTableWidget提升为此类. class customTable:p ..
发布时间:2021-02-15 18:42:26 其他开发

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

我已经准备好很多关于如何将多个信号连接到python和pyqt中的同一事件处理程序的文章.例如,将多个按钮或组合框连接到同一功能. 许多示例显示了如何使用QSignalMapper进行此操作,但不适用于信号带有参数的情况,例如combobox.currentIndexChanged 许多人建议可以用lambda制成.我同意这是一个干净漂亮的解决方案,但是没有人提及lambda创建一个闭 ..
发布时间:2020-11-12 19:47:35 Python

PyQt事件,当变量值更改时

我有一个变量t t = 0 无论何时更改t值,我都想开始一个事件. 如何 ?没有valuechanged.connect属性或任何变量... 解决方案 对于全局变量,仅使用赋值是不可能的.但是对于属性来说,它非常简单:只需使用属性(或 __getattr__/__setattr__ ).这样可以有效地将赋值转换为函数调用,使您可以添加所需的任何其他行为: class Fo ..
发布时间:2020-10-31 02:25:59 Python

信号处理程序可以在PyQt中泄漏内存吗?

简短问题: 可以通知处理程序内存泄漏. 常见问题: 在C#中,如果我将处理程序附加到事件 left_object.left_event += right_object.right_handler 然后,当我摆脱right_object时,我需要删除该处理程序,否则垃圾收集器将永远不会处理它(因为left_object.left_event保留了指向right_objec ..
发布时间:2020-10-31 02:13:47 Python

PyQt连接到KeyPressEvent

某些小部件将允许我执行以下操作: self.widget.clicked.connect(on_click) 但要这样做: self.widget.keyPressEvent.connect(on_key) 将无法说该对象没有属性"connect". 我知道子类化小部件并重新实现keyPressEvent方法将使我能够响应事件.但是,此后如何从用户上下文.connect( ..
发布时间:2020-10-31 01:59:51 Python

跟随发出的信号到其连接的插槽?

我了解到Qt信号已放入事件队列中,然后稍后在事件循环看到它时调用连接的插槽。因此,在调试时“介入”是没有意义的。但是我真的很想看到,在一个足够大的应用程序中,我无法一次记住所有这些内容,而控制流最终结束了。 所以有没有一种方法可以找到连接到信号的插槽,或者可能基于 connect(...); 调用,或者实际上是在调试时? 在Qt Creator 3.5.1中(基于Qt 5.5.1(GC ..
发布时间:2020-10-19 06:51:34 C/C++开发

给定pyqtBoundSignal如何确定插槽?

给出信号后,如何确定特定信号所连接的插槽? 我熟悉如何连接信号和插槽,这更多是出于调试目的。 我是使用pyqt5,python 2.7 解决方案 没有“ the”插槽,因为一个信号可以连接到多个插槽,或多个其他信号,或同一信号/插槽多次。但是无论如何,没有内置的API可以列出所有当前连接。 您可以获得当前连接的 count 信号的连接,例如: count = bu ..
发布时间:2020-10-19 05:06:23 Python

如何截获Qt中给定事件发出的所有信号?

我可以想象,根据事件的不同,可能会有很多,但同时,我想这可能是调试的最佳方法,也是一个有趣的课程。 我为什么需要它?我正在使用基于 QWidget 的自定义类,当我取消附加基于 QDockWidget 的类时,该类不会扩展在同一窗口中。知道在断开此扩展坞小部件断开连接时会发出什么信号,这将帮助我选择需要在自定义类中覆盖的方法。 不想检查文档中所有可能的信号,而只是查看我在应用程序中执行 ..
发布时间:2020-10-19 04:42:43 其他开发

调试Qt信号和插槽有哪些最佳实践?

调试信号和插槽可能很困难,因为调试器在发出信号时不会跳到信号的插槽。调试Qt信号和插槽的最佳实践是什么? 尤其是 如何确保成功建立连接? 何时应使用信号和插槽,何时应避免使用它们? 什么是信号和插槽 解决方案 有一段博客写了一段时间称为调试Qt信号和插槽 它解决了我认为您的问题的#1和#3。 对于#2,我认为没有使用或不使用信号/插槽确实是一个艰难而快速的理由, ..
发布时间:2020-10-08 03:12:36 其他开发

如何将QSlider连接到QDoubleSpinBox

我想将QSlider连接到QDoubleSpinBox,但是虽然代码可以很好地编译并可以在简单的QSpinBox上运行,但它不适用于QDoubleSpinBox QSlider * horizo​​ntalSlider1 =新的QSlider(); QDoubleSpinBox * spinBox1 =新的QDoubleSpinBox(); connect(spinBox1,S ..
发布时间:2020-10-08 02:51:43 其他开发

是“公共插槽:” Qt5中还需要哪些部分?

关于Qt5中新的 signal / slot 语法的一个简单问题: 对于一个 Q_OBJECT 派生的类具有个公共位置:节已声明? 注意:使用新语法,您可以将信号连接到类的任何公共函数或直接实现C ++ 11 lambda( Qt的新功能信号/插槽语法 解决方案 vahancho和TheDarkKnight的答案是有效的:插槽对于连接不是必需的,但是它使意图更清晰并允许自 ..
发布时间:2020-09-27 21:40:37 其他开发

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

我想从基类窗口小部件派生我的所有窗口小部件,该基类窗口小部件会自动在该类的插槽和(很少调用的)信号之间建立信号/插槽连接。 插槽是一个虚拟功能,因此我希望为其实现自定义功能的任何小部件都可以从虚拟插槽功能中派生。在所需的场景中,我的所有小部件都将从带有虚拟插槽的该基类派生,因此默认情况下,我的所有小部件实例都将通过为该对象定义的插槽连接到所需的信号(基类具有默认行为) )。 我知道Qt ..
发布时间:2020-09-27 07:37:45 C/C++开发

安全跨线程信号/插槽C ++

似乎唯一为信号类和插槽中提供安全跨线程信号的实现是QT. (也许我错了?). 但是我不能在我正在做的项目中使用QT.那么,如何从其他线程提供安全的Slot调用(例如,使用Boost :: signals2)?插槽内的互斥锁是唯一的方法吗?我认为signal2可以保护自己,但不能保护插槽内正在执行的操作. 谢谢 解决方案 您可以结合使用boost :: bind和boost AS ..
发布时间:2020-09-22 06:00:17 C/C++开发

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

我遇到了一个怪异的错误-QAction::trigger导致出现阻塞对话框,这导致我的调用trigger的服务器卡住(例如,直到对话框关闭后才能处理套接字信号). 我想出了一种解决方法.我使用Qt::QueuedConnection将信号void triggerWorkaround()连接到插槽QAction::trigger并发出信号: QObject::connect(this, ..
发布时间:2020-08-05 22:48:18 C/C++开发