问题标签 [qt-signals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2346 浏览

pyqt - PyQt5 在哪个模块中找到了 emit 方法?

有人为我运行此代码作为健全性检查会很有帮助。

为其他人返回 true 吗?请注意,从 PyQt4 导入 QObject:

0 投票
4 回答
25401 浏览

c++ - 在接口类中声明抽象信号

当实现类已经从 QObject/QWidget 派生时,如何在抽象类/接口中声明 Qt 信号?

0 投票
3 回答
1108 浏览

qt - 使用不带参数的信号启用/禁用 QAction 的更简单方法?

我经常需要的典型线路是

但是 afaik 你不能连接具有不同签名的信号/插槽。

通常建议使用辅助方法来触发/发出传递真/假的自定义信号,但是我有很多动作需要在线程启动/停止/其他时禁用/启用,所以我想避免写几十个辅助功能/信号。

有没有更好的方法(也许是单行解决方案)?

0 投票
2 回答
4506 浏览

c++ - 如何在 Qt 中创建动态信号和插槽?

Qt 中的信号/槽机制是一种静态机制。这些类必须由 moc 编译器进行预处理。
现在我想在运行时动态创建信号和槽。
我已经有了一个可行的解决方案,但对我来说感觉就像一个黑客,尽管我使用的是公开可用的方法。
这是动态插槽的代码:

如您所见,我大量使用了 QMetaObject,尤其是槽的索引(方法计数)。
动态信号的代码是可比较的。

现在我的问题是:这个解决方案的未来证明如何,特别是因为我假设索引必须至少比 methodCount() 大一个?

0 投票
3 回答
1371 浏览

python - 为什么在 PyQt 中使用信号和插槽?

我正在学习 PyQt(我以前没有使用过 C++ Qt)。

我不明白信号和插槽的原因。也就是说,似乎我可以通过直接调用类的方法来做任何事情。这样做看起来更 Pythonic,使用更少的代码并且更容易阅读。我错过了什么?

为了澄清,我问我为什么要这样做:

当我可以这样做时:

0 投票
4 回答
4878 浏览

c++ - 当接收器忙时 Qt 信号会发生什么?

在我的应用程序中,我有一个 的实例QTimer,它的timeout()信号连接到主窗口对象中的一个插槽,导致它被定期调用。该插槽使用相机拍照并将其保存到磁盘。

我想知道如果在QTimer接收器(主线程上的窗口对象)当前正忙(例如拍摄和保存前一张图片)时发出信号(从执行的单独线程,我假设)会发生什么。在上一个呼叫终止后,呼叫是否排队并执行?整个想法是让它定期运行,但是这些调用是否可以排队,然后在控制返回事件循环时随机调用,从而造成混乱?我怎样才能避免它?从理论上讲,插槽应该快速执行,但是假设硬件出现问题并且出现了停顿。

我希望在这种情况下放弃呼叫而不是排队,甚至更有用的是能够在它发生时做出反应(警告用户,终止执行)。

0 投票
2 回答
2980 浏览

c++ - Qt:从主函数访问小部件并实现退出按钮

我想在我的应用程序中实现一个退出按钮,它具有以下设置:我有一个如下所示的主函数:

我还有一个由 QT Creator IDE 生成的 mainWindow 函数。
我使用 Qt Designer 设计 GUI,当我希望按钮在单击时执行某些操作时,我使用如下函数:

我希望现在已经充分描述了设置。
现在我的问题是:我想实现一个按钮,单击该按钮会终止窗口和应用程序。我首先尝试在这样的函数中实现它:

但我不知道到这里。
然后我听说了一个方法 via QObject::connect,但我有两个问题:
1.)我应该把这个放在哪里?在主函数中?
2.) 我可以简单地通过 QT Designer 中给出的对象名称来访问该对象吗?

0 投票
1 回答
370 浏览

qt - 如何在 QThread 中处理信号/空闲?

我创建了一个简单的线程网络服务器。main.cpp 调用 app.exec() 空闲,一旦我建立连接,线程就会按预期启动。

在线程的 run() 函数中,我将一个信号从 readyRead 连接到一个名为 readCommand 的槽:

我已经在类的 .h 文件中定义了 readCommand 作为“私有槽”——因为它只能从类中调用。希望那是对的。

在上面的连接之后,run() 函数返回。没有 app.exec() 调用或任何东西。这可能是问题吗?我是否必须调用一些函数来使线程监听信号?

当我向端口发送文本时,readCommand 函数永远不会触发......而且我不知道如何调试这个......建议?

0 投票
3 回答
3460 浏览

c++ - 拔下 USB 串行电缆时发送信号

有没有办法使用 Qt 发送信号或任何其他方式来判断 USB 串行电缆是否已拔出?

0 投票
2 回答
798 浏览

c++ - Qt中的MultiSelectable和Non Multiselectable复选框

我写了一个简单的小部件,它有一个 QCheckBoxes 列表。另外,我的类有一个名为 的成员isMultiselectable,它在构造函数中初始化。当此选项为 TRUE 时,我希望小部件是多选的(即用户可以设置多个 QCheckBox)。否则,它必须防止 QCheckBoxes 的多重选择。

推荐的实施方式是什么?谢谢你。