问题标签 [qt-slot]
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.
qt - 将参数传递给插槽
我想用一堆 QActions 和 QMenus 覆盖 mouseReleaseEvent ......
所以我想向插槽传递一个参数onStepIncreased
(你可以想象它们是 1、5、10、25、50)。你知道我该怎么做吗?
c++ - 使用 Q_INVOKABLE 将 C++ 与 QML 连接起来
我有一个 Qt 函数:
我从 QML 收集数据,我想将数据传递给 Qt 中的这个函数。所以我知道我需要使用Q_INVOKABLE
但不知道如何使用它。
还有一件事是在调用上述某些函数时可以调用其他函数。
例如:我调用了上面的函数,但在她的身体里我调用了refresh()
函数。这可能吗?
qt - 我的信号/插槽连接不起作用
我反复看到人们在没有调用插槽时遇到问题。我想收集一些最常见的原因。所以也许我可以帮助人们并避免很多多余的问题。
信号/插槽连接不起作用的原因是什么?如何避免此类问题?
c++ - QLineEdit editingFinished 信号在改变焦点时两次?
我发现了一些类似的问题,但这些似乎是指在插槽处理程序中使用消息框的情况。就我而言,我有点卡住了,因为即使我的插槽处理程序什么都不做,我也收到了两次 editFinished 信号。
对于测试,我有一个 QLineEdit 数组,它使用 signalMapper 将 editingFinished() 信号连接到单个插槽。signalMapper 传递数组索引,因此我可以看到信号的来源。例如:
在调试器中运行时,如果我将数据输入到一个框中,然后按回车键或用鼠标选择另一个框(即更改焦点),然后它调用 data_entry 两次,第一次是失去焦点的框的索引和第二次使用获得焦点的框。
所以我的问题是:我错过了什么吗?这是预期的行为还是错误?如果是错误,任何人都知道解决方法,因为我想在输入数据时使用此信号对数据进行自定义验证(通过返回、制表符或鼠标单击来更改焦点)。
qt - Qt:如何通过像函数一样调用信号来知道信号槽机制是否调用了槽
在一个插槽内,我检查了QObject::sender()
但现在我想像函数一样直接调用这个插槽。
我可以知道这个插槽是如何在插槽内部调用的吗?是通过信号槽机制还是简单地像函数一样调用槽?
qt - QT Connect QNetworkReply SIGNAL finished() 未触发
我看了一下这个链接,除了信号间谍和调试之外,我至少尝试了一切。我从这个网站上举了一个例子。我暂时还没有设置调试器。
我的问题是我想触发一个自定义插槽并且什么都没有发生。我尝试了 qmake 并重建了项目,但结果是一样的。我在 Windows10 机器上使用带有 QT 5.7 msvc2015_64 的 QTCreator 作为套件。我没有收到任何应该用于测试功能的未引用警告(*reply not used)。这个问题的根源可能是什么?
我的完成信号有问题吗?
从程序的流程中,我假设它是以下内容:
我创建了一个指向QNetworkAccessManager
名为 manager 的类的实例的新指针。然后我将管理器对象的信号连接finished
到对象管理器的自定义插槽test(QNetworkReply*)
。现在每次发出来自对象管理器的信号时,都应该执行finished
来自对象管理器的函数。
从文档中,我假设当调用这个函数时会返回一个新对象,并且当这个对象完成处理时会发出信号。我必须以其他方式连接我的信号和插槽吗? test
QNetworReply *QNetworkAccessManager::get(QNetworkRequest(QUrl))
QNetworkReply*
finished
我试图声明QNetworkReply reply* = manager->get....
,connect(reply, SIGNAL(finished()),this,SLOT(test()));
但在这里我的应用程序崩溃了。
当我设置wireshark和过滤器:http包含“ http://www.theuselessweb.com ”没有弹出。
switchwebpanel.h
switchwebpanel.cpp
我得到以下输出:
我的 Main.cpp 调用:switch_panel panel; panel.doDownload();
c++ - 在 Qt 上将信号和数据从一个类传递到另一个类
我将首先发布代码,因为之后它会更容易理解。
基本上,我有一个默认类 MainWindow:
主窗口.h
主窗口.cpp
后面是一个带有pushButton和textBox的简单表单。
第二类:
tcpsocket.h
和tcpsocket.cpp
Bsically,我想将一些数据从类 tcpsocket 传递给类 MainWindow
main.cpp是默认代码。我认为这无关紧要。
更具体地说,我希望来自tcpsocket 类的信号触发来自MainWindow 类的插槽:
第二个问题是如何将一些数据从tcpsocket 类传递给MainWindow 类:
应用程序运行完美,内容被获取。但我只能使用 qDebug(); 查看获取的内容;所以我想将对 GUI 的响应传递给一个文本框。
c++ - 'QML 连接:无法分配给不存在的属性',尽管事实相反
因此,我检查了以下问题,这些问题似乎与我现有的问题最相似:
QML:在 QML 中使用 cpp 信号总是导致“无法分配给不存在的属性”
不幸的是,这并没有帮助。(我在 stackoverflow/google/qt 论坛等上也找不到任何其他解决方案)
我不断收到以下两个错误:
qrc:/view.qml:30:9:QML 连接:无法分配给不存在的属性“onNewFrameReceived” qrc:/view.qml:31:ReferenceError:未定义 imageProvide
这是我的代码(经过编辑使其成为“最小工作示例”)。
唯一重要的文件应该是:
- 主文件
- 视图.qml
- imageprovidervm.cpp
- imageprovidervm.h
我包含了imagesource类,只是为了完整,以防有人也想自己编译它。
Q1。所以,我不明白为什么即使在main.cpp中设置了 context 属性,也会出现以下错误。
qrc:/view.qml:31: ReferenceError: imageProvide 未定义
有趣的是,智能感知/自动完成似乎完全正确地检测到了 imageProvide。
Q2。即使在我的imageprovider.h中,我添加了应该在 qml 文件中看到的属性 (newimage) 和信号 (newFrameReceived),但我仍然收到以下错误。此外,Qt 智能感知/自动完成无法在此处显示我定义的信号 (onNewFrameReceived)。
qrc:/view.qml:30:9:QML 连接:无法分配给不存在的属性“onNewFrameReceived”
- 附加信息:在第 31 行的 qml 文件中的断点处调试和停止,在 qtcreator 的“局部变量和表达式”中显示我这里只有 2 个可用信号,即“ objectNameChanged ”和“ targetChanged ”。为什么 ???
主文件
视图.qml
imageprovidervm.h
imageprovidervm.cpp
图像源.h
图像源.cpp
这是 CMake 文件:
c++ - 执行我的应用程序时出现警告消息“没有匹配的信号”
执行我的应用程序时会出现一些警告消息:
QMetaObject::connectSlotsByName: No matching signal for on_actionUndo_triggered()
,
QMetaObject::connectSlotsByName: No matching signal for on_actionRedo_triggered()
我已经对我创建的信号和插槽实施了规则void on_objectName_signalName(signalParameters);
,但我不知道为什么会出现这些消息,请注意信号和插槽工作正常。
宣言:
定义:
c++ - QT 信号和插槽不工作并给出错误消息
我是 Qt 的新手,正在尝试编写信号和插槽。下面是我试图运行的代码。在“连接”功能上使用 SLOT 和 SIGNAL 关键字,它工作正常。但我不想在连接函数上使用 SIGNAL 和 SLOT 关键字,而是想使用不同的方法。
在上面的代码中,未注释的连接函数工作正常,但注释的连接函数不起作用。我收到错误“没有匹配的函数来调用 MyWindow::connect”。不知道我在这里犯了什么错误。我从 qt 关注这篇文章。