问题标签 [qprogressdialog]

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 投票
1 回答
896 浏览

python - PyQt5中使用QThread显示QProgressDialog

我正在使用 PyQt5 编写一个管理销售订单的应用程序。创建或删除订单时,我想显示一个 marqee 样式的进度对话框以指示应用程序正在运行。我访问了很多帖子,其中的答案涉及使用 QThread。我试图实现它,但似乎我遗漏了一些东西。这是我的线程类。

在主窗口的初始化中,我创建了 self.worker=Worker()

现在删除条目的代码例如:

结果是没有显示进度对话框。gui 只是冻结一两秒钟,然后条目删除,没有显示任何进度对话框。

对不起,我的代码很长,所以我不能在这里全部包含,我只是想看看我是否有什么严重的错误。

0 投票
3 回答
304 浏览

c++ - 如何使用 QProgressDialog 的取消按钮停止/取消工作人员作业

我的代码由一个工人类和一个对话框类组成。工人阶级开始了一份工作(一份很长的工作)。我的对话框类有 2 个按钮,允许启动和停止作业(它们工作正常)。我想实现一个显示工作正在进行的繁忙栏。我在 Worker 类中使用了 QProgressDialog。当我想使用 Qpr​​ogressDialogcancel按钮停止工作时,我无法捕捉到信号&QProgressDialog::canceled。我试过了,这个(放在 Worker 构造函数中):

没有任何影响。

您可以在下面看到完整的编译代码。

如何通过单击 QprogressDialog 取消按钮来停止作业?

下面是我在必要时重现该行为的完整代码。

//worker.h

// worker.cpp

// mydialog.h

// main.cpp

0 投票
1 回答
141 浏览

c++ - 如何等待 QProgressDialog 构建?

在执行很长的操作之前,我正在调用QProgressDialog以通知用户执行进度。长操作正在等待线程终止。

问题是,当我使用show的方法时QProgressDialog,进度对话框没有完全构建,线程进入线程的wait方法,如下图所示:

1

同时,当我使用exec的方法时QProgressDialog,进度对话框已完全构建,但在wait退出进度对话框之前不会调用该方法,如您在此处看到的:

2

这是我正在使用的代码:

在线程落入wait方法之前,我有什么方法可以等待或强制完全构建进度对话框,这需要相当长的时间并阻塞主线程?谢谢你的任何建议。

0 投票
1 回答
229 浏览

c++ - Qt/C++ 如何断开 QProgressDialog::canceled 信号与其 QProgressDialog::cancel 槽的连接?

我有一个QProgressDialog并且我想覆盖它的cancel()插槽来改变它的行为。

我不想关闭对话框,而是想做一些其他操作,然后在 QThread 完成后关闭对话框,然后再关闭对话框。

我试图断开canceled/cancel信号/插槽对并重新连接新行为,但它似乎没有太大变化。

一旦我单击取消按钮,进度对话框就会首先关闭,然后无论如何都会执行我的 lambda。

有没有办法正确地做到这一点?

0 投票
0 回答
27 浏览

qt - QdialogbuttonBox 标题翻译不起作用

我正在编写一个 qt 应用程序。我将使用 QdialogbuttonBox 显示带有取消按钮的进度对话框。我写在下面的代码

我创建了一个 Qdialogbuttonbox,标题为“操作正在进行中请稍候”。我添加了中文翻译。它似乎不起作用。我不知道现在该怎么办

标题翻译不起作用

0 投票
1 回答
33 浏览

python - 如何拦截QProgressDialog取消点击

我有一个带有取消按钮的标准 QProgressDialog。如果/当用户单击取消按钮时,我不希望对话框立即隐藏,而是我更愿意禁用取消按钮并执行一些清理工作,然后在我确定此工作后关闭 QProgressDialog完成了。如何拦截当前功能?

从文档看来我应该覆盖:

PySide.QtGui.QProgressDialog.cancel()

重置进度对话框。PySide.QtGui.QProgressDialog.wasCanceled() 变为真,直到进度对话框被重置。进度对话框变为隐藏。

我已经尝试对这个方法进行子类化,但是当我单击取消按钮时,它似乎甚至没有被调用。