问题标签 [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.
c++ - Qt 多重继承和信号
由于 QObject,我在使用 QT 时遇到了关于多重继承的问题。我知道很多其他人有同样的问题,但我不知道我应该如何解决它。
当我这样做时
我会得到错误:
QObject' 是 'MainMenuOption' 的模糊基础
我之所以让 NavigatableItem 从 QObject 继承是因为信号。有没有办法做到这一点?
编辑:
将 virtual 添加到每个继承声明中,仍然给我同样的错误:
即使在“全部清理”、“运行 qmake”和“全部构建”之后。
c++ - 如何在不从 QObject 派生的情况下使用 SIGNAL 和 SLOT?
或以其他方式表达我的问题(尽管它没有解决我的问题):'QObject::QObject' 无法访问在类'QObject' 中声明的私有成员
我的班级需要 SIGNAL 和 SLOTS 功能,但我认为如果不从QObject
?
问题似乎是我需要从中派生QObject
以使用信号和插槽......但我需要MyClass
. 但由于以下特性,我无法构造它们QObject
:
No Copy Constructor or Assignment Operator。
我试了很多...
所以我的 shou Class 看起来像这样:
我需要MyClass
.
那么有没有可能避免“'QObject :: QObject'无法访问在类'QObject'中声明的私有成员”错误?
或者作为替代方案是否有可能使用没有 的信号和插槽QObject
?
我很高兴有任何建议。
python - PySide 信号“复制”行为
输出:
“加载”只打印一次(如预期的那样;它是一个类变量),但为什么要创建信号的 2 个实例(如果它也是一个类变量)?
c++ - Qt 自定义插槽
为什么插槽 Reset() 不起作用?我希望“重置”按钮将边的值重置为零。
multithreading - Perl Qt 3.1 和线程
我有一个类是 Qt::Object 并且有一个创建线程的方法。
每当我尝试分离或加入线程时,它都会出现故障。
发射信号也不起作用。
示例代码是:
我得到的错误是:
尝试释放不存在的共享字符串“39631808”,Perl 解释器:0x2879910。
[1] 分段错误
c++ - 使用 Qt 线程的困惑
因此,如果我理解正确,如果我有一个FunctionsClass
继承 QObject 的类,并且我将该类设置在一个调用的 Qthread 上FunctionClassThread
:
据我了解,这种设置线程的方法只会处理 中的插槽的执行FunctionsClass
,这意味着如果某个插槽由于某种原因具有无限循环,FunctionsClass
则可以阻止正在运行的线程。FunctionsClass
所以我的问题是:如何在线程上运行 FunctionsClass 的函数而不仅仅是插槽?有没有办法将整个对象(函数、成员变量等)放在一个线程上,以便仅执行来自该整个对象的代码/数据?我对线程如何处理插槽执行的理解是否正确?
qt - QTableView、QStandardItemModel 和信号
我有一个QTableView
, 填充了一个QStandardItemModel
.
我经常通过网络更新模型,并且模型也由用户直接通过QTableView
.
现在我喜欢在用户更改一些数据时调用一个方法,所以我这样做了:
现在的问题是,我的dataChanged
方法被调用,当项目通过网络更新时也是如此。
是否有另一个信号仅在用户更改QTableview
???
c++ - 动态地向集合中的一个对象发出信号
我有一个情况,我有一个发射器对象和一组接收器。接收器属于同一类,实际上代表一组相同类型的设备。我正在使用 Qt 框架。
发射器本身首先收到一个信号,要求从其中一个设备获取信息。
在相应的插槽中,发射器必须检查哪些接收器“准备好”,然后发送自己的信号以向其中一个设备请求数据(以先准备好的为准)。
发射器接收信号的速度非常快,大约为毫秒。我可以想到三种安全地从其中一个设备请求数据的方法(这些设备存在于它们自己的线程中,所以我需要一个线程安全机制)。设备的数量不是静态的,而是可以变化的。设备的总数非常少(肯定在 5-6 个以下)。
1)在添加或删除设备时连接到所有设备。发出一个请求,并让设备对象自己使用某些特定的设备标签过滤该请求是否是针对他们的。这种方法很好,因为发生检查的请求槽将在专用线程的上下文中执行,但随着设备数量的增加而浪费。
2)当需要发送请求时,动态连接和断开与发射器中的对象。
3) 在需要发送请求时使用 QMetaObject::invokeMethod()。
性能很重要。有谁知道哪种方法是“最好的”,或者是否有更好的方法?
问候
棱镜
注意:澄清:发射器从应用程序获取信号,通过查询设备获取信息。疯狂的 ASCII 艺术去:
(app)<---->(发射器)<------>(接收器)<--|-->物理设备
python - 从 PyQt 中的 QPushButton 获取文本
我正在尝试从 QtGui.QPushButton 对象列表创建一个简单的键盘。
问题是 lambda 返回False
而不是键。我究竟做错了什么?
qt - Qt 信号/插槽连接不起作用
我在QObject::connect
方法上有一个非常奇怪的问题。首先请看一下这个非常简单的代码:
的对象A
不响应从 的对象发出的信号B
。我相信信号会按预期发出。QObject::connect
方法返回true
表示成功。我跑了qmake,moc并且moc_ .cpp* 文件似乎是正确的。
我想知道我在哪里犯错了?
编辑我:
这是我正在处理的代码,它被剥离,所以只显示相关部分:
我在子类中创建一个新ListController
对象,QWidget
将自身作为父对象传递并提供适当的Model
对象。
编辑二
将对象ListController
返回CompositeView
到主小部件。主小部件将复合视图添加到其布局中。此时, 的父级CompositeView
及其子级发生了变化。这可能是问题的根源。