- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
主 GUI 线程在等待 QFuture 时更新 QProgressDialog 的正确方法是什么。具体来说,这个循环中发生了什么:
QProgressDialog pd(...);
QFuture f = ...;
while (!f.isFinished()) {
pd.setValue(f.progressValue());
// what goes here?
}
现在我有一个类似 sleep() 的调用,但这不是最佳选择(当然会引入一些 GUI 延迟)。
如果我什么都不放,主线程将循环使用 pd.setValue(),浪费 CPU 周期。
我希望放置类似 QCoreApplication::processEvents(flags,maxtime) 的东西,但如果事件队列为空,它会立即返回。我想要一个等到 maxtime 或者即使队列为空的版本。这样,我得到了延迟,并且主线程始终准备好响应 GUI 事件。
最佳答案
使用 QFutureWatcher
使用信号和槽监视 QFuture 对象。
QFutureWatcher watcher;
QProgressDialog pd(...);
connect(&watcher, SIGNAL(progressValueChanged(int)), &pd, SLOT(setValue(int)));
QFuture f = ...
watcher.setFuture(f);
关于c++ - 使用 QFuture 更新 QProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1881627/
我正在使用 QProgressDialog,它显然只显示进度并且它会沿途递增。当它达到 100% 时,其上的进度条将重置为零,而不是之后显示 100%。 progress是类的成员变量。 QShare
我在使用我的应用程序上的 QProgressDialog 时遇到了一些问题。 当用户点击计算按钮时,我会显示一个从 QThread 更新的 QProgressDialog(我认为这与问题无关),当这个
我想从我的工作线程更新一个modal QProgressDialog。但是,如果我将对话框设置为模态,我的应用程序就会崩溃(并且对话框没有显示任何进度)。如果我不这样做,一切都会顺利(但用户可以修改程
我正在使用 QProgressDialog 来显示从 QTreeView 中的数据库加载数据的进度。我使用信号和槽来发送记录数和当前记录。这是插槽代码: void MainWindow::loadDa
我正在运行处理器繁重的操作并使用 QProgressDialog 向用户报告。然而,取消按钮工作不稳定 - 有时它在整个运行过程中被忽略,有时它会响应,但仅在进度的某个点之后(这一点也不一致)。在我看
我有一个根据MVC模型设计的程序。我的 View 有一个 open 按钮,我可以在其中打开文件。文件被解析,并根据文件内容完成大量计算。 现在我想显示一个加载程序来指示用户应该等待。我对 Python
我有理由在循环中使用 QProgressDialog,我希望对话框弹出并等待用户输入,然后再显示对话框。然而,在第二次循环中,对话框一直保持匿名,直到它开始正确更新。下面是一些示例代码: QProgr
这个问题在这里已经有了答案: Disable QDialogs default close button (upper left "cross button")? (5 个答案) 关闭 9 年前。
我正在开发一个无法共享源代码的大项目。在那个项目中,我们在 Windows(不是在 ubuntu 中)中遇到了一些可重现的堆栈溢出错误,调试器的堆栈跟踪显示进度对话框设置为窗口模式,正在递归调用 QP
我有一个简单的程序,我希望有一个远程更新的模式、非阻塞进度窗口(使用 QProgressDialog)。 SIZE 只是控制 QProgressDialog 的最大值。但是,如果我将它的值设置为 4
progress = QtGui.QProgressDialog("Parsing Log", "Stop", 0,numberOfLinesInFile , self) progress.s
我正在使用 QT 4.8.5。我在带有 MinimumDuration 的 QProgressDialog 上遇到了一些问题。这是文档:http://doc.qt.io/qt-4.8/qprogres
从 MFC 应用程序启动 Qt 应用程序时,我在显示模态 Qt 对话框时遇到问题。具体来说,当我将其父级设置为 QWinWidget 实例时,QProgressDialog 实例将不会显示在 MFC
我刚刚编写了一些基于 QThread 的代码来执行大型计算。为了可视化进度,我需要打开一个 QProgressDialog。该对话框是应用程序模式的(使用 open()),因为我不想在计算期间修改主窗
我正在从线程调用 QProgressDialog 并且无法将其设置为模态窗口,即使我将 setModal 设置为 true。我希望在 QProgressDialog 运行时阻塞主窗口。 以下是我的一段
我正在使用 subprocess.call 来运行需要一段时间(>5 分钟)才能运行的命令提示符命令: subprocess.call([command, param1, param2], cwd=c
我正在使用 QProgressDialog 来显示我的 initializeGL() 函数的进度,但是小窗口显示为未绘制...这是简化的代码: QProgressDialog barTest("Wai
主 GUI 线程在等待 QFuture 时更新 QProgressDialog 的正确方法是什么。具体来说,这个循环中发生了什么: QProgressDialog pd(...); QFuture f
有时我的 QProgressDialog 显示,有时它根本不显示(好像没有调用 processEvents)。 processEvents() 命令是否存在任何可能导致 QProgressDialog
考虑这个 SLOT ,在我的主线程中,由一个按钮触发,该按钮采用 QTreeWidgetItem 的列表来自QTreeWidget .它使用 QtConcurrent::map()调用来执行一个长任务
我是一名优秀的程序员,十分优秀!