python - 当 QProgressBar 存在时,如何居中对齐 QPushButton?

标签 python qt pyqt5 qprogressbar

我试图将 QProgressBar 放在 QPushButton 下方,并将它们对齐到 QVBoxLayout 的中心,但由于某种原因当进度条存在时按钮保持左对齐,如果不存在则居中对齐。

我尝试将所有父窗口小部件和布局的对齐方式设置为Qt.AlignCenter,但进度条始终使按钮向左移动。

connect_box = QVBoxLayout()
connect_box.setAlignment(Qt.AlignCenter)
connect_button = QPushButton('Connect')
connect_button.setFixedSize(120, 30)
connect_progress = QProgressBar()
connect_progress.setRange(0, 10000)
connect_progress.setValue(0)
connect_box.addWidget(connect_button)
connect_box.addWidget(connect_progress)
connect_box.setContentsMargins(0, 20, 0, 0)

我希望添加进度条时按钮保持居中对齐。

最佳答案

尝试一下:

import sys
from PyQt5.QtGui     import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore    import *

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        connect_button = QPushButton('Connect')
        connect_button.setFixedSize(120, 30)

        connect_progress = QProgressBar()
        connect_progress.setRange(0, 10000)
        connect_progress.setValue(0)

        connect_box = QVBoxLayout(self)
        connect_box.setAlignment(Qt.AlignCenter)  

        connect_box.addWidget(connect_button, alignment=Qt.AlignCenter)  # < ----

        connect_box.addWidget(connect_progress)
        connect_box.setContentsMargins(0, 20, 0, 0)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    sys.exit(app.exec_())

enter image description here

关于python - 当 QProgressBar 存在时,如何居中对齐 QPushButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422984/

相关文章:

获取值时出现 Python 错误

python - CSV 文件和字典

windows - Qt 是否支持 windows 蓝牙 API?

android - Qt Creator 找不到我的 Android 设备

javascript - 如何将信号从 javascript 发送到 qml

python - 使用 QtQuick.Controls 中的任何内容都会引发 protected 模块错误

python - 按下回车键后显示文本

python - 运行时错误 : No MovieWriters available in Matplotlib animation

python - python中如何获取项目根目录下子文件夹的路径?

drag-and-drop - 在两个 QListWidgets PyQt5 之间拖放