PyQt5:如何对齐状态栏的元素?

时间:2017-08-21 07:06:29

标签: python qt pyqt pyqt5 statusbar

我创建了一个状态栏,如下所示:

def initStatusbar(self):
    self.zoomSlider = QSlider(Qt.Horizontal)
    self.zoomSlider.setMaximumWidth(200)
    self.zoomSlider.setRange(1, 200)
    self.zoomSlider.setSingleStep(10)
    self.zoomSlider.setValue(100)

    self.progressbar = QProgressBar()
    self.progressbar.setMaximumWidth(400)
    self.statusBar().addWidget(self.progressbar)
    self.statusBar().addWidget(self.zoomSlider)

屏幕截图如下:

enter image description here

但我想替换进度条和滑块,就像在截图中一样:

enter image description here

1 个答案:

答案 0 :(得分:1)

最初的解决方案是使用大于零的拉伸,但这会使QProgressBar伸展无限制,在这种情况下,最好将其包含在另一个窗口小部件中并将其嵌入到QStatusBar中。

def initStatusbar(self):
    self.zoomSlider = QSlider(Qt.Horizontal)
    self.zoomSlider.setMaximumWidth(200)
    self.zoomSlider.setRange(1, 200)
    self.zoomSlider.setSingleStep(10)
    self.zoomSlider.setValue(100)

    self.progressbar = QProgressBar()
    self.progressbar.setMaximumWidth(400)

    widget = QWidget(self)
    widget.setLayout(QHBoxLayout())
    widget.layout().addWidget(self.progressbar)
    widget.layout().addWidget(self.zoomSlider)
    self.statusBar().addWidget(widget, 1)

截图:

enter image description here