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

c++ - 循环中的 QtCore.QObject.connect 仅影响最后一个实例

我有一个循环。我创建了一个QCheckBox并将它放在一个QTableWidget单元格中,一切都很好。在循环的每个步骤中,我connect为 myslot SLOT 调用了一个函数,但只QCheckBox应用了最后一个实例。我google了很多,发现很多人都有我的问题。我已经应用了他们的解决方案,但我的问题仍然存在。

注意:我的connect函数 return True

如何connect在枚举所有的循环中创建函数instances

0 投票
3 回答
1383 浏览

qt - Qt 信号和槽机制被 main 中的循环阻塞

我有以下情况。

  • 在主循环Socket中创建了2 个对象(原始问题有 1000 个对象)。在创建时调用该方法。forstart()
  • start()创建一个QTcpSocket尝试连接到某个主机的。
  • Socket具有connected()从 QTcpSocket 捕获信号并打印一些调试输出的插槽

发生的事情是按时间顺序首先Socket创建所有对象,然后启动套接字。这是调试选项的示例输出:

代码:

这不是我所期望的行为,因为文档指出:

当一个信号发出时,连接到它的槽通常会立即执行,就像一个普通的函数调用一样。发生这种情况时,信号和槽机制完全独立于任何 GUI 事件循环。

问题

当信号发出时,如何确保插槽“立即”执行(不仅在主循环完成之后)?


我目前看到的唯一可用的解决方案(不引入新线程)

在这种情况下放弃使用信号和槽,并在start方法中实现所有内容。像这样的东西:

0 投票
2 回答
1870 浏览

qt - Qt 自动将新对象的信号连接到现有插槽

我有一个简单的对象库,用于存储有关变量的附加数据。当我创建每个对象(用作变量)时,我想维护这些对象的 QList。有没有办法自动将所有新创建的对象的信号连接到一个插槽。该插槽属于我的应用程序中的一个对象。

对象头 ezbool.h

对象构造 器ezbool.cpp

插槽实现 fbtest.cpp

在fbtest.cpp中以下列方式创建对象:

我尝试过匹配 Qt 的自动连接功能,但没有运气。自动连接能力引用自以下:

自动连接

Qt 项目论坛

我不想在实例化每个新对象后手动连接每个信号。采用以下方式:

有没有人有任何建议或建议?谢谢!

0 投票
3 回答
34374 浏览

c++ - QObject连接函数

我检查了其他类似的问题并尝试了他们的解决方案,但它们对我不起作用。

我基本上是在尝试制作一个只发出 post 请求的 http 客户端。为此,我需要将QNetworkManager的完成信号连接到某个回调槽。

这是我的代码。

h 文件

.cpp 文件

如您所见,该插槽肯定存在,并且在头文件的公共插槽下声明。所以我不知道为什么会这样。我已经尝试过清理、运行 qmake 并重建。

错误信息是:

“QObject::connect: 没有这样的插槽 QObject::finishedSlot(QNetworkReply *)”

任何的想法?

0 投票
1 回答
1074 浏览

c++ - Qt UI Slot 不被从基类继承的信号调用

我遇到了一个愚蠢的问题,而且我对 Qt 还是很陌生。

我有一个类 ( SoundSampler ),它从基类 ( BaseSampler )继承信号,并且该信号在 UI 构造函数 ( MainWindow ) 中连接到 UI 中的插槽 ( sampleAvailable() )。

问题:

即使连接发生正确(connect()在 UI 类中返回 true,并且isSignalconnectedSoundSampler类中也返回 true),但永远不会调用插槽。..................................................... ...................................

这是我的代码(精简为要点):

基本采样器

声音采样器

..................................................... ...................................

主窗口

..................................................... ...................................

0 投票
1 回答
3191 浏览

c++ - QTableView clearSelection 因 ASSERT 失败:文件 /usr/include/qt4/QtCore/qlist.h 中的“!isEmpty()”,第 282 行

我有这堂课:

在我的 cunstructor 中:

在我的插槽实现中:

它编译得恰到好处,但是当我运行并进行选择时,它最后会崩溃并显示以下错误消息:

断言:文件 /usr/include/qt4/QtCore/qlist.h 中的“!isEmpty()”,第 282 行

我也尝试了其他技巧:重新实现 showEvent 方法并从该上下文中调用 clearSelection,但没有帮助:(

我的 Qt 版本是 4.8.1。你能帮忙的话,我会很高兴。提前致谢。

0 投票
1 回答
251 浏览

c++ - Qt:发出信号时不调用信号处理程序

我正在做这样的事情:

关于何时触发 SIGNAL 的任何建议都不会调用 SLOT。这是显示菜单的位置:

关于为什么不调用 SLOT 的任何建议?

0 投票
3 回答
5249 浏览

c++ - Qt:使用 QObject::connect 指定多种连接类型

我想知道是否可以指定多种连接类型。例如,我希望我的连接类型是排队连接和唯一连接。是否可以在一个语句中指定?

更新 :

根据海报的建议:

我尝试使用 Qt::QueuedConnection | Qt::UniqueConnection但我得到了

0 投票
1 回答
73 浏览

c++ - QPushButton 用法

在我的应用程序中,我有两个按钮和一个功能,当我单击某个按钮功能需要某个参数并以其值执行时,当我单击另一个按钮时,它的功能需要另一个参数并执行,该怎么做?所有这些事情都是动态完成的。功能和按钮属于不同的类别。

我应该在哪里发出信号?以及如何覆盖它?

0 投票
1 回答
243 浏览

c++ - 为什么 Qt 看不到我的插槽?

我正在尝试使用以下代码将上下文菜单添加到树中:

但是,当我运行它时,我收到以下错误:

我究竟做错了什么?