问题标签 [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.

0 投票
0 回答
66 浏览

python-3.x - 如何在表单启动时停用除一个之外的所有小部件或在 PyQt5 中显示?

我设计了一个 QDialog 表单,上面放置了不同的小部件来进行一些计算。然而,一切都在按计划进行。除了我想禁用除一个用于初始输入之外的所有小部件。我希望小部件遵循标签顺序。完成输入数据后,它应该触发或启用下一个按钮到最后。以前的小部件应该失去焦点并在完成它们后立即被禁用。但是当我点击最后一个按钮时,第一个小部件应该再次激活,以允许新的数据输入。我使用 PyQt5 设计器 5.11 版进行设计。

0 投票
1 回答
114 浏览

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::columnCount

这类问题肯定可以使用 QAbstractItemModel 解决。我做错了什么或没有在想什么?感谢您对此事的任何意见。

0 投票
0 回答
69 浏览

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()检查它是否在我的函数完成后退出,但它永远不会从我调用的第一个返回,尽管这两个函数都成功结束

非常感谢您的帮助

0 投票
1 回答
57 浏览

qt5 - QThread 总是卡在等待中

我正在尝试使用QThread在另一个线程中调用函数而无需冻结 UI。我在windowslinux上都使用QT5.11.2

在 Windows 上一切正常,但 wait() 函数QThread无论如何都不会返回。

我在 Linux 上使用RHEL7

这是我正在做的事情:

我的Configure函数打印它的开始和结束,并且两行都在运行时打印

我什至读到quit()强制线程停止,所以只是为了测试我尝试切换quit()wait()就像这样

我什至尝试循环isRunning()函数而不是wait()但我得到了相同的结果

似乎无论线程如何,它都不知道它已经完成。

我可以做些什么来解决这个问题或检查为什么会发生这种情况?