【问题标题】:How to center align a QPushButton when a QProgressBar is present?当 QProgressBar 存在时如何居中对齐 QPushButton?
【发布时间】:2019-01-29 14:13:48
【问题描述】:

我正在尝试将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)

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

【问题讨论】:

    标签: python qt pyqt5 qprogressbar


    【解决方案1】:

    试试看:

    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_())
    

    【讨论】:

    • 太好了,行得通!我没有注意到那个参数。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-10-01
    • 2017-10-20
    • 2019-04-24
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多