Я пытаюсь создать приложение QtGui, которое использует найденный здесь QtWaitingSpinner: https://github.com/z3ntu/QtWaitingSpinner. У меня есть это в QGridLayout.Тем не менее, это означает, что кнопка рядом с ней меняет размер, когда прядильщик невидим и запущен.Как зарезервировать правильное количество места для счетчика в сетке, чтобы кнопка рядом с ней оставалась неизменной, независимо от того, отображается ли счетчик?
На основе этого сообщения стекопотока Какиспользуйте проставки в Qt , я подозреваю, что ответ включает QSpacerItem.Однако я не могу понять, как измерить QSpacerItem в зависимости от размера, который понадобится спиннеру.
Вот минимальный пример кода, демонстрирующий мою проблему:
import PyQt5.QtWidgets as QWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
from waitingspinnerwidget import QtWaitingSpinner
import sys
class Example_Window(QWidgets.QWidget):
def __init__(self):
super(QWidgets.QWidget,self).__init__()
self.initUI()
def initUI(self):
self.button=QWidgets.QPushButton("Start/Stop Spinner")
self.button.clicked.connect(self.toggle_spinner)
self.spinner = QtWaitingSpinner(self,centerOnParent=False)
self.grid = QWidgets.QGridLayout()
self.grid.addWidget(self.button,0,0)
self.grid.addWidget(self.spinner,0,1)
self.setLayout(self.grid)
self.show()
def toggle_spinner(self):
if self.spinner.isSpinning():
self.spinner.stop()
else:
self.spinner.start()
if __name__ == '__main__':
app = QWidgets.QApplication([])
main = Example_Window()
sys.exit(app.exec())