问题标签 [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 投票
0 回答
377 浏览

qt - 当一个 QRect 与另一个相交时发送一个事件

我面临一个关于矩形交叉点的问题。请注意,直到现在我还没有为此编写任何代码。我只是在想如何解决这个问题。好的,我们开始吧。在我的 SceneView 中,我有一些QGraphicsPixmapItems将在我的场景中连续移动。我想诱使他们所有人只在我的场景范围内移动。

我的想法是在我的 QGraphicsPixmapItems 中添加一个信号,以便在每次发生移动时通知我的场景。在我的场景中,当其中一个项目超出我的场景矩形范围时,我可以有另一个信号来通知我的项目。这种方法的问题在于处理。如果每次移动发生时我都会发出一个信号,这就是轮询的特征,这不是我想要的。

我知道 QRect 的 intersected() 和 intersects() 方法。但是,对于我来说,每次发生移动时都打电话给我,这不是一个好主意。你知道这个问题的好主意吗?

0 投票
2 回答
30777 浏览

c++ - qt 信号未定义参考错误

我有一个类服务器,我为其创建了一个信号连接(QString 名称)。我在一个名为 join(QString name) 的函数中调用它,但是我得到了错误

Server.o: 在函数Server::join(QString)': Server.cpp:(.text+0x48): undefined reference to Server::joined(QString)' collect2: ld 返回 1 退出状态

这是我的头文件的样子:

这是我的 cpp 文件:

0 投票
1 回答
1096 浏览

c++ - 将 QPushButton 信号连接到 QGraphicsView 插槽时出现问题

我无法将 a 中的信号连接QPushButton到我的QGraphicsView.

我的按钮标题:

您需要Q_Object宏来用插槽编译它,但是当我编译时,我不断得到一个未找到的 vtable 引用,如下所示:

当我取出宏时,我可以很好地编译它,但是当我运行时我不断收到这个错误:

我的game_controller扩展QGRaphicsView,这是我尝试连接按钮的代码:

任何帮助将不胜感激

0 投票
1 回答
1485 浏览

c++ - Qt:信号槽不工作

我正在尝试在主 gui 和另一个移动到另一个线程的对象之间实现信号和插槽系统......以下是类设计的样子......不幸的是无法实现它......

主窗口.h

主窗口.cpp

threadforDisplay是一个指向displaythread 类的指针,它看起来像

显示线程.h

显示线程.cpp

显示.h

显示.cpp

输出 :

接收到的启动过程信号

但是,当从主 gui 即 MainWindow 发出信号时,除了 Process 插槽之外,没有其他插槽正在工作。是由于 movetoThread 命令吗?Donno我哪里错了..

0 投票
3 回答
1062 浏览

c++ - 子类化 QTcpServer 时,如何延迟发出 newConnection() 信号?

我想创建一个 SSL 服务器,所以我将 QTcpServer 子类化并覆盖incomingConnection(),在其中创建一个QSslSocket,设置它的描述符,然后调用QSslSocket::startServerEncryption. 此时我需要等待QSslSocket::encrypted()信号发出,然后我的服务器才应该发出newConnection()信号。客户端代码然后会认为它正在使用 QTcpSocket,但实际上会使用安全套接字。

但是QTcpServer 总是 newConnection()在调用后发出incomingConnection()(我查看了 QTcpServer 的源代码):

所以我的问题是,有没有一种方法可以防止QTcpServer发出newConnection(),直到我准备好自己发出它?

我想要这个的原因是我希望我的类能够被不知道它正在使用它的代码用作 QTcpServer 的直接替换,因此它必须完全像 QTcpServer 一样运行:

我的 SslServer 类代码目前是这样的:

0 投票
1 回答
2185 浏览

c++ - 断开并稍后重新连接 Qt 信号

有没有办法暂时断开 Qt 信号,但存储连接到它的对象列表,以便稍后可以重新连接信号?

0 投票
1 回答
3805 浏览

c++ - 如何通过 QSignalMapper 或其他方式将 QString 从 QMenu 传递到 Qt 插槽

我有一个带有许多子菜单的 QMenu。这些是动态创建的,即名称菜单来自数据库并在循环中创建。现在我想在单击菜单时触发相同的 slottrigger() 或类似的,但我需要将 QString 菜单名称传递给 slot,以便我可以执行特定于菜单的操作。我已经尝试了,即将一个 QAction * 传递给触发的事件并使用了 setData 但我得到了运行时错误。

object::connect: 没有这样的信号 QAction::triggered(QAction *)

或者,我也尝试过 QSignalMapper ,其中 signalMapper 是在构造函数中初始化的数据成员

在第二种情况下,我没有收到任何错误,但是插槽函数 playChannel 没有被调用。如果有人可以帮助解决它,我将不胜感激。

更新 1:我从其他示例中看到的唯一区别是,通常人们将来自多个小部件的信号连接到一个插槽(比如不同的按钮)。在我的情况下,我将几个子菜单(具有不同的名称)连接到一个插槽。这应该有什么不同吗?

更新 2:它在以下解决方案为 QSignalMapper 建议的更正后工作。此外,我使用 SubMenu 作为 setMapping 的参数,而应该使用 MenuAction 项。但是现在我多次触发事件,即与所选子菜单类别的主菜单中的条目一样多。如果频道类型是英语(主菜单),有四个条目)、HBO、明星电影等(子菜单),并且我选择 HBO,则使用字符串 HBO 触发事件四次。如果我为每个子菜单创建一个单独的信号映射器,它工作正常。但我希望应该使用一个映射器,我在这里做错了。答案的评论中有更多细节。

0 投票
1 回答
304 浏览

qt - 强制javascript重新评估信号?

所以我有以下情况:

QML 文件:

JavaScript 文件 (Script.js):

假设我在 SomeQtObject 中有一些信号,基于这些信号 getSource 应该重新评估。如何将这些信号绑定到 javaScript getSource 函数,以便在每次发出这些信号时重新评估?

0 投票
1 回答
4002 浏览

python - PyQt - QComboBox 连接已确认,但未调用函数

我在使用 PyQt 的信号/插槽问题上遇到了一些麻烦。我的代码在下面,但它可能值得一些解释。前两个 QObject.connect() 返回 True,所以我知道连接已建立。但是,当更改组合框中的选择时,不会按预期调用函数 getParameters。下面的 5 个连接用于调试和测试与 ComboBox 相关的其他信号。那些也不会按预期打印日志。

从我读到的其他有更新的方法来指定连接的地方,这可能是问题吗?如果是这样,有人可以给我一个这种格式的例子吗?谢谢!

0 投票
1 回答
1869 浏览

qt - Pyside QgraphicsScene 无法捕获鼠标事件

我找不到将鼠标事件附加到场景的方法。没有查看所有事件都会被捕获,但是当被注释掉时,只有 mousePressEvent 有效。请帮忙。