Как расширить ширину кнопок QSpinBox - PullRequest
1 голос
/ 28 января 2020

Я создал маленький GUI в QtCreator и преобразовал его в python для выполнения на Raspberry Pi. Проблема в том, что кнопки QSpinBox масштабируются только по высоте QSpinBox. как я могу увеличить ширину кнопок в коде python?

, вот код python, который был сгенерирован для одного из блоков, SpinBox_7:

    self.spinBox_7 = QtWidgets.QSpinBox(self.gridLayoutWidget)
    self.spinBox_7.setMinimumSize(QtCore.QSize(0, 50))
    palette = QtGui.QPalette()
    brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
    brush.setStyle(QtCore.Qt.SolidPattern)
    palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Highlight, brush)
    brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
    brush.setStyle(QtCore.Qt.SolidPattern)
    palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.HighlightedText, brush)
    brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
    brush.setStyle(QtCore.Qt.SolidPattern)
    palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Highlight, brush)
    brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
    brush.setStyle(QtCore.Qt.SolidPattern)
    palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.HighlightedText, brush)
    brush = QtGui.QBrush(QtGui.QColor(51, 153, 255))
    brush.setStyle(QtCore.Qt.SolidPattern)
    palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Highlight, brush)
    brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
    brush.setStyle(QtCore.Qt.SolidPattern)
    palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.HighlightedText, brush)
    self.spinBox_7.setPalette(palette)
    font = QtGui.QFont()
    font.setPointSize(20)
    font.setBold(False)
    font.setWeight(50)
    self.spinBox_7.setFont(font)
    self.spinBox_7.setAlignment(QtCore.Qt.AlignCenter)
    self.spinBox_7.setMaximum(12)
    self.spinBox_7.setSingleStep(2)
    self.spinBox_7.setObjectName("spinBox_7")
    self.gridLayout.addWidget(self.spinBox_7, 2, 3, 1, 1)

1 Ответ

1 голос
/ 28 января 2020

Одним из возможных решений является установка ширины с помощью Qt StyleSheet для кнопки «вниз» и «вверх» QSpinBox:

QSpinBox::down-button{
    width: 50
}
QSpinBox::up-button{
    width: 50
}

Для ее использования есть как минимум следующие 3 варианта:

  1. Для использования приложения Qt у вас должно быть QApplication, затем вы должны установить его там:

    app = QtWidgets.QApplication(sys.argv)
    app.setStyleSheet("""
    QSpinBox::down-button{
        width: 50
    }
    QSpinBox::up-button{
        width: 50
    }""")
    
  2. Применить его к каждому QSpinBox:

    self.spinBox_7.setStyleSheet("""
       QSpinBox::down-button{
        width: 50
    }
    QSpinBox::up-button{
        width: 50
    }""")
    
  3. Используйте Qt Designer, чтобы сделать это, щелкните правой кнопкой мыши на QSpinBox и выберите опцию «Изменить таблицу стилей ..», откроется диалоговое окно, и вы должны разместить таблицу стилей, как показано в следующем изображение и нажмите кнопку ОК.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...