问题标签 [qt5.11]
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.
python-3.x - 如何在表单启动时停用除一个之外的所有小部件或在 PyQt5 中显示?
我设计了一个 QDialog 表单,上面放置了不同的小部件来进行一些计算。然而,一切都在按计划进行。除了我想禁用除一个用于初始输入之外的所有小部件。我希望小部件遵循标签顺序。完成输入数据后,它应该触发或启用下一个按钮到最后。以前的小部件应该失去焦点并在完成它们后立即被禁用。但是当我点击最后一个按钮时,第一个小部件应该再次激活,以允许新的数据输入。我使用 PyQt5 设计器 5.11 版进行设计。
c++ - QAbstractItemModel::columnCount - 每行的可变列数
我们正在实现一个 QAbstractItemModel 结构,如下图所示,并且希望这样;
- 节点 A 包含 3 个数据列
- 节点 B 包含 8 个数据列
- 节点 C 包含 5 个数据列
但是,在查看 QAbstractItemModel::columnCount 的签名时,不清楚如何实现上述要求。很难确定节点 A 应该有 3 列,节点 B 应该有 8 列,节点 C 应该有 5 列只给出父索引。
int QAbstractItemModel::columnCount(const QModelIndex &parent = QModelIndex()) const
返回给定父级的子级的列数。
在大多数子类中,列数与父类无关。
这类问题肯定可以使用 QAbstractItemModel 解决。我做错了什么或没有在想什么?感谢您对此事的任何意见。
linux - QThread isRunning 始终为真
我在 linux 和 windows 上都使用 QT 5.11.2。我正在尝试优化我的 UI 以防止它在大型功能中冻结。我开始使用QThread
并且能够在 Windows 上做我想做的事。但是,我尝试在 linux RHEL7 上测试相同的功能,但线程从未完成。
这是我尝试过的:
在 Windows 中,while
循环会在一段时间后退出,两个线程都可以正常执行,没有问题。在 linux 上,为了确保两个函数都能正确执行,我qDebug()
在每个函数的开头和结尾添加了它们,它们都在预期的时间到达。但问题是它isRunning
永远不会再次成为真的,同样的情况也是如此isFinished
,我的循环被卡住了。
线程:QThread(0x1d368b0, name = "My Bert Thread") 已启动。
线程:QThread(0x1d368e0, name = "My DSO Thread") 已启动。
线程:QThread(0x1d368b0, name = "My Bert Thread") 完成。
线程:QThread(0x1d368e0, name = "My DSO Thread") 完成。
它是依赖于平台的还是我可能缺少的东西?
编辑
我还尝试使用bertThread->wait()
并dsoThread->wait()
检查它是否在我的函数完成后退出,但它永远不会从我调用的第一个返回,尽管这两个函数都成功结束
非常感谢您的帮助
qt5 - QThread 总是卡在等待中
我正在尝试使用QThread
在另一个线程中调用函数而无需冻结 UI。我在windows和linux上都使用QT5.11.2。
在 Windows 上一切正常,但 wait() 函数QThread
无论如何都不会返回。
我在 Linux 上使用RHEL7
这是我正在做的事情:
我的Configure
函数打印它的开始和结束,并且两行都在运行时打印
我什至读到quit()
强制线程停止,所以只是为了测试我尝试切换quit()
,wait()
就像这样
我什至尝试循环isRunning()
函数而不是wait()
但我得到了相同的结果
似乎无论线程如何,它都不知道它已经完成。
我可以做些什么来解决这个问题或检查为什么会发生这种情况?