PyQt5: Как выровнять элементы строки состояния?

Я создал строку состояния, которая выглядит следующим образом:

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)

Снимок экрана ниже:

Но я хочу заменить индикатор выполнения и ползунок, как на этом скриншоте:

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)

Скриншот:

Другие вопросы по тегам