PySide6.QtWidgets.QProgressDialog¶
- class QProgressDialog¶
QProgressDialog类提供了关于缓慢操作进度的反馈。更多…概要¶
属性¶
autoCloseᅟ- 对话框是否通过reset()隐藏autoResetᅟ- 进度对话框是否在value()等于maximum()时立即调用reset()labelTextᅟ- 标签的文本maximumᅟ- 进度条表示的最高值minimumᅟ- 进度条表示的最低值minimumDurationᅟ- 对话框出现前必须经过的时间valueᅟ- 当前完成的进度量wasCanceledᅟ- 对话框是否被取消
方法¶
def
__init__()def
autoClose()def
autoReset()def
labelText()def
maximum()def
minimum()def
open()def
setAutoClose()def
setAutoReset()def
setBar()def
setLabel()def
value()def
wasCanceled()
插槽¶
def
cancel()def
forceShow()def
reset()def
setLabelText()def
setMaximum()def
setMinimum()def
setRange()def
setValue()
信号¶
def
canceled()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
进度对话框用于向用户指示操作需要多长时间,并证明应用程序没有冻结。它还可以给用户提供中止操作的机会。
进度对话框的一个常见问题是很难知道何时使用它们;操作在不同的硬件上花费的时间不同。
QProgressDialog提供了解决这个问题的方法:它估计操作将花费的时间(基于步骤的时间),并且仅在该估计超过minimumDuration()(默认为4秒)时显示自己。使用
setMinimum()和setMaximum()或构造函数来设置操作中的“步骤”数量,并在操作过程中调用setValue()。步骤数量可以任意选择。它可以是复制的文件数量、接收的字节数量、算法主循环的迭代次数,或其他合适的单位。进度从setMinimum()设置的值开始,当您使用setMaximum()设置的值作为参数调用setValue()时,进度对话框显示操作已完成。对话框在操作结束时自动重置并隐藏自身。使用
setAutoReset()和setAutoClose()来更改此行为。请注意,如果您设置了一个新的最大值(使用setMaximum()或setRange())并且该值等于当前的value(),则无论怎样对话框都不会关闭。有两种使用
QProgressDialog的方式:模态和非模态。与无模式的
QProgressDialog相比,模态的QProgressDialog对程序员来说使用起来更简单。在循环中执行操作,定期调用setValue(),并使用wasCanceled()检查是否取消。例如:progress = QProgressDialog("Copying files...", "Abort Copy", 0, numFiles, self) progress.setWindowModality(Qt.WindowModal) for i in range(0, numFiles): progress.setValue(i) if progress.wasCanceled(): break #... copy one file progress.setValue(numFiles)
无模式进度对话框适用于在后台进行的操作,用户能够与应用程序进行交互。此类操作通常基于计时器类,如QChronoTimer(或更低级别的QObject::timerEvent())或QSocketNotifier;或在单独的线程中执行。在主窗口的状态栏中的
QProgressBar通常是无模式进度对话框的替代方案。你需要有一个正在运行的事件循环,将
canceled()信号连接到一个停止操作的槽,并定期调用setValue()。例如:# Operation constructor def __init__(self, parent): super().__init__(parent) self.steps = 0 pd = QProgressDialog("Operation in progress.", "Cancel", 0, 100) pd.canceled.connect(self.cancel) t = QTimer(self) t.timeout.connect(self.perform) t.start(0) def perform(self): pd.setValue(steps) #... perform one percent of the operation steps += 1 if steps > pd.maximum(): t.stop() def cancel(self): t.stop() #... cleanup
在这两种模式下,可以通过使用
setLabel()、setBar()和setCancelButton()来替换子部件为自定义部件,从而自定义进度对话框。函数setLabelText()和setCancelButtonText()用于设置显示的文本。
另请参阅
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property autoCloseᅟ: bool¶
此属性决定对话框是否会被
reset()隐藏。默认值为 true。
另请参阅
- Access functions:
- property autoResetᅟ: bool¶
此属性表示进度对话框是否在
value()等于maximum()时立即调用reset()。默认值为 true。
另请参阅
- Access functions:
- property labelTextᅟ: str¶
此属性保存标签的文本。
默认文本是一个空字符串。
- Access functions:
- property maximumᅟ: int¶
此属性表示进度条所代表的最高值。
默认值为100。
另请参阅
- Access functions:
- property minimumᅟ: int¶
此属性表示进度条所代表的最低值。
默认值为0。
另请参阅
- Access functions:
- property minimumDurationᅟ: int¶
此属性保存对话框出现前必须经过的时间。
如果任务的预期持续时间小于minimumDuration,对话框将不会出现。这可以防止对话框在任务快速完成时弹出。对于预期超过minimumDuration的任务,对话框将在minimumDuration时间后或一旦设置了任何进度时弹出。
如果设置为0,对话框将在任何进度设置时立即显示。默认值为4000毫秒。
- Access functions:
- property valueᅟ: int¶
此属性保存当前完成的进度量。
为了使进度对话框按预期工作,您应首先将此属性设置为
minimum(),最后将其设置为maximum();在此过程中,您可以多次调用setValue()。警告
如果进度对话框是模态的(参见
QProgressDialog()),setValue()会调用QCoreApplication::processEvents(),因此请注意这不会导致代码中出现不良的重新进入。例如,不要在paintEvent()内部使用QProgressDialog!- Access functions:
- property wasCanceledᅟ: bool¶
此属性表示对话框是否被取消。
- Access functions:
- __init__([parent=None[, flags=Qt.WindowFlags()]])¶
- Parameters:
parent –
QWidgetflags –
WindowType的组合
构建一个进度对话框。
默认设置:
标签文本为空。
取消按钮的文本是(翻译)“取消”。
最小值为0;
最大值为100
parent参数是对话框的父部件。部件标志f被传递给QDialog()构造函数。- __init__(labelText, cancelButtonText, minimum, maximum[, parent=None[, flags=Qt.WindowFlags()]])
- Parameters:
labelText – str
cancelButtonText – str
minimum – int
maximum – 整数
parent –
QWidgetflags –
WindowType的组合
构建一个进度对话框。
labelText是用于提醒用户当前进度的文本。cancelButtonText是显示在取消按钮上的文本。如果传递了 QString(),则不会显示取消按钮。minimum和maximum是操作中此进度对话框显示进度的步骤数。例如,如果操作是检查50个文件,此最小值将为0,最大值将为50。在检查第一个文件之前,调用setValue(0)。当每个文件被处理时,调用setValue(1),setValue(2), 等等,最后在检查完最后一个文件后调用setValue(50)。parent参数是对话框的父部件。父部件parent和部件标志f被传递给QDialog()构造函数。- autoClose()¶
- Return type:
布尔
另请参阅
属性
autoCloseᅟ的获取器。- autoReset()¶
- Return type:
布尔
另请参阅
属性
autoResetᅟ的获取器。- cancel()¶
重置进度对话框。
wasCanceled()变为 true,直到进度对话框被重置。进度对话框变为隐藏。- canceled()¶
当点击取消按钮时,会发出此信号。默认情况下,它连接到
cancel()槽。另请参阅
- forceShow()¶
如果算法启动后对话框仍然隐藏,并且已经过了
minimumDuration毫秒,则显示对话框。另请参阅
- labelText()¶
- Return type:
字符串
另请参阅
属性
labelTextᅟ的获取器。- maximum()¶
- Return type:
整数
另请参阅
属性
maximumᅟ的获取器。- minimum()¶
- Return type:
整数
另请参阅
属性
minimumᅟ的获取器。- minimumDuration()¶
- Return type:
整数
另请参阅
属性
minimumDurationᅟ的获取器。打开对话框并将其
canceled()信号连接到由receiver和member指定的槽。当对话框关闭时,信号将从插槽断开。
- reset()¶
重置进度对话框。如果
autoClose()为true,进度对话框将变为隐藏。- setAutoClose(close)¶
- Parameters:
close – 布尔值
另请参阅
属性
autoCloseᅟ的设置器。- setAutoReset(reset)¶
- Parameters:
reset – 布尔值
另请参阅
属性
autoResetᅟ的设置器。- setBar(bar)¶
- Parameters:
bar –
QProgressBar
将进度条小部件设置为
bar。进度对话框会调整大小以适应。进度对话框会取得进度条bar的所有权,必要时会删除它,因此不要使用在栈上分配的进度条。- setCancelButton(button)¶
- Parameters:
按钮 –
QPushButton
将取消按钮设置为按钮,
cancelButton。进度对话框将拥有此按钮的所有权,必要时会删除它,因此不要传递栈上对象的地址,即使用new()创建按钮。如果传递None,则不会显示取消按钮。- setCancelButtonText(text)¶
- Parameters:
文本 – str
将取消按钮的文本设置为
cancelButtonText。如果文本设置为QString(),则会导致取消按钮被隐藏并删除。另请参阅
将标签设置为
label。进度对话框会调整大小以适应。标签将由进度对话框拥有,并在必要时删除,因此不要传递堆栈上对象的地址。另请参阅
- setLabelText(text)¶
- Parameters:
文本 – str
另请参阅
属性
labelTextᅟ的设置器。属性
maximumᅟ的设置器。属性
minimumᅟ的设置器。- setMinimumDuration(ms)¶
- Parameters:
ms – 整数
另请参阅
属性
minimumDurationᅟ的设置器。- setRange(minimum, maximum)¶
- Parameters:
minimum – int
maximum – 整数
将进度对话框的最小值和最大值分别设置为
minimum和maximum。如果
maximum小于minimum,minimum将成为唯一合法的值。如果当前值超出新范围,进度对话框将使用
reset()重置。属性
valueᅟ的设置器。- value()¶
- Return type:
整数
另请参阅
属性
valueᅟ的获取器。- wasCanceled()¶
- Return type:
布尔
属性
wasCanceledᅟ的获取器。