gpt4 book ai didi

python - 如何子类化 QMessageBox 并在 PySide 中添加进度条

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:17 25 4
gpt4 key购买 nike

一般而言,我对 PySide 和 Qt 比较陌生。我想将 QProgressBar 添加到按钮通常所在的 QMessageBox 中。我希望有一些方法可以子类化 QMessageBox 并更改它的布局,但我从来没有在代码中做过 Qt 布局,我已经用 Qt Designer 和 pyside-uic 完成了所有事情。

我在 Qt Designer 中创建了一个概念,我想通过子类化 QMessageBox 来完成类似的事情。我看过 QProgressDialog,但它太不灵活了。我希望能够使用 QMessageBox Icon 枚举作为图标。

Concept

最佳答案

QMessageBox 使用 QGridLayout。因此,您可以将 QProgressBar 添加到它的布局中:

msgBox = QMessageBox( QMessageBox.Warning, "My title", "My text.", QMessageBox.NoButton )

# Get the layout
l = msgBox.layout()

# Hide the default button
l.itemAtPosition( l.rowCount() - 1, 0 ).widget().hide()

progress = QProgressBar()

# Add the progress bar at the bottom (last row + 1) and first column with column span
l.addWidget(progress,l.rowCount(), 0, 1, l.columnCount(), Qt.AlignCenter )

msgBox.show()

您还可以删除按钮 msgBox.setStandardButtons( QMessageBox.NoButton )。但是关闭按钮也将被禁用...

关于python - 如何子类化 QMessageBox 并在 PySide 中添加进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com