问题标签 [signals-slots]

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 投票
2 回答
3317 浏览

c++ - 指向 Qt 插槽的指针

我想建立一个指向 Qt Slot 的指针:

插槽定义为:

我尝试做这样的事情:

但是编译器说签名不匹配:

错误:void (DriverBoard::)(long unsigned int)' does not matchvoid (*)(long unsigned int)'类型的参数

提示:插槽在 DriverBoard 类中

知道我的错误在哪里吗?

如果有人知道 - 是否也可以用信号做类似的事情?

谢谢!西蒙

0 投票
2 回答
4626 浏览

qt - Qt 小部件稍后更新,但什么时候更新?

我想知道当我调用 QWidget 的 update() 方法时会发生什么。
这是文档:

http://doc.qt.digia.com/4.5/qwidget.html#update

此函数不会导致立即重绘;相反,它会在 Qt 返回主事件循环时安排一个绘制事件进行处理。与调用 repaint() 相比,这允许 Qt 进行优化以获得更快的速度和更少的闪烁。

我从 Qt 源代码中看到创建了一个 QUpdateLaterEvent 并使用QEvent::UpdateLater类型发布

在这部分文档 http://doc.qt.digia.com/4.5/qevent.html

QEvent::UpdateLater:小部件应该排队等待稍后重新绘制。

“以后”是什么意思?
我所有发出的排队信号和事件队列中的事件是否在绘制之前处理?

谢谢,
加博尔

0 投票
3 回答
6920 浏览

go - 如何在不阻塞的情况下确定 goroutine 是否已完成?

到目前为止,我看到的所有示例都涉及阻塞以获取结果(通过<-chan操作员)。

我目前的方法涉及将指针传递给结构:

goroutine 在完成时写入的内容。finished然后在方便的时候进行检查是一件简单的事情。你有更好的选择吗?

我真正的目标是 Qt 风格的信号槽系统。我有一种预感,解决方案看起来几乎是微不足道的(chans 有很多未开发的潜力),但我对语言还不够熟悉,无法弄清楚。

0 投票
1 回答
6393 浏览

qt - Qt:事件是否按顺序处理?

如果我有一个 A 类,它的一个功能是:

假设一个 B 类有 2 个 slot,一个连接到first_signal,另一个连接到second_signal,是否保证连接到的 slotfirst_signal总是在slot之前second_signal被处理?

0 投票
2 回答
6892 浏览

qt - Qt库事件循环问题

我正在编写一个 DLL,它被另一个应用程序用作插件,并希望利用 Qt 的功能。
我已经设置、编译和运行了所有类,但没有发出任何信号。所以看起来好像没有QEventLoop。

尝试1:
我将我的主类修改为子类QThread而不是QObject,并在run()中创建一个QEventLoop,连接所有信号/插槽,并执行线程。
但是它没有说没有 QApplication 就不能拥有 QEventLoop。

尝试 2:
我修改了主类(仍然是 QThraed 的子类)以实例化 QCoreApplication,连接所有信号/插槽,然后执行应用程序。
警告 QApplication 不是在 main() 线程中创建的,并且仍然不会发出信号。

我不确定在这里做什么。我显然无法在将使用我的插件的应用程序中创建一个 QCoreApplication,而且我不能在没有它的情况下发出信号。

我已经包含了一个简单的(并且写得很糟糕)测试应用程序,它应该可以说明我的问题:

任何帮助,将不胜感激!

主.cpp:

ThreadThing.h:

ThreadThing.cpp:

输出:

0 投票
1 回答
140 浏览

c++ - 试图让信号在我的 QT 中工作。我需要一些建议和帮助

所以我的主要功能是:

我在 QT Desginer 中设置了一个 Signal,名为:output(const QString &s)

我的信号接收器是我的“表单”......在我的表单中。嗨有:插槽称为“changeOutput(const QString&s)。

output_box 是一个 QTextEdit 框。

我收到的错误是:TCPClient.cpp:122: error: no match for call to '(const QString) (const QString&)'</p>

我究竟做错了什么?

谢谢 :)

0 投票
2 回答
8376 浏览

c++ - 是否可以看到 Q_SIGNALS、Q_SLOT、SLOT()、SIGNAL() 宏的定义?(Qt)

是否可以在 Qt 框架中看到 Q_SIGNALS、Q_SLOT、SLOT()、SIGNAL() 宏的定义?

PS Google 在这个问题上什么也没给我。

0 投票
3 回答
113 浏览

c++ - Qt 告诉我我的 SLOT 不存在,但是通过 make clean,让它不再抱怨

当我从我们的 SVN 下载一个新副本,然后运行我的程序时,Qt 告诉我我的一个 SLOTS 不起作用,但是用一个方便的花花公子 make clean 然后 make,它似乎解决了这个问题。我继续在我的 PC 上更改代码,并且该消息不再显示。

C++ Qt 4.6 gcc

有人遇到过这个问题吗?和想法?

谢谢

0 投票
2 回答
16272 浏览

qt - Qt 信号和槽的参数类型,const 引用限定符重要吗?

用于以下类型的信号和插槽

textChanged 和 setText 的参数类型似乎对const&起作用。与仅使用 QString 相比,常量和引用限定有什么不同吗?

编辑:当在 SIGNAL 或 SLOT 中使用不兼容的类型时,我没有注意到输出窗口显示错误消息。我认为信号槽机制能够在编译时检测参数类型错误。

0 投票
1 回答
345 浏览

qt - 无法将信号绑定到 QT 中的插槽

我刚开始使用 QT,我知道信号/插槽的概念,但在实现它时我遇到了问题。看看我的代码:

注意:我添加了 Q_OBJECT 宏并从 test.h 中的 QObject 继承

这是我的测试容器

代码编译完美,但什么也不会发生。我不太确定我犯了哪一部分错误:-?