2012-06-14 1 views
4

Поскольку я программирую среду планшета, некоторые виджеты слишком малы для сенсорного взаимодействия. Я хочу больше сделать кнопки QSpinBox.Qt Widgets setStyleSheet

После некоторого поиска я обнаружил, что единственный способ отображения функции setStyleSheet, но тогда он не очень хорошо объяснил, как его использовать. В этом link to Qt reference описано, что я должен передать функции setStyleSheet, но неясно, могу ли я использовать ее часть, или я должен использовать все это, даже если я хочу только изменить одну вещь.

В любом случае, используя часть этого текста или весь текст, мой QDoubleSpinBox выглядит по умолчанию после применения этих настроек. Это было еще больше, поскольку я рисую файл miii, чем сейчас. Конечно, он не окрашивает свой желтый фон (только для проверки, работает ли он) или делает кнопки больше.

Я использую эту функцию:

customizeSpinBox(ui.doubleSpinBoxDistanciaLocalizador); 
       ui.doubleSpinBoxDistanciaLocalizador->setVisible(true); 

void MyClass::customizeSpinBox(QDoubleSpinBox *spinBox){ 

qApp->setStyleSheet("QSpinBox { border: 3px solid red; border-radius: 5px; background-color: yellow; }" 
         "QSpinBox::up-arrow { border-left: 17px solid none;" 
         "border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }" 
         "QSpinBox::up-arrow:hover { border-left: 17px solid none;" 
         "border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }" 
         "QSpinBox::up-button { width: 80px; height: 77px; background-color: yellow; }" 
         "QSpinBox::up-button:hover { width: 80px; height: 77px; background-color: yellow; }" 

         "QSpinBox::down-arrow { border-left: 17px solid none;" 
         "border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }" 
         "QSpinBox::down-arrow:hover { border-left: 17px solid none;" 
         "border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }" 
         "QSpinBox::down-button { width: 80px; height: 77px; background-color: yellow; }" 
         "QSpinBox::down-button:hover { width: 80px; height: 77px; background-color: yellow; }" 
    ); 

}

Любая помощь?

ответ

3

Прежде всего - этот код стилей не может работать. Закрытие «}» отсутствует в некоторых строках.

Для того, чтобы установить минимальный размер QSpinBox попробовать это: QSpinBox { border: 3px solid red; border-radius: 5px; background-color: yellow; min-width: 200px; min-height: 200px; }

Используя этот метод, я получил большие, уродливые spinboxes с этим стилем:

"QSpinBox { border: 3px solid red; border-radius: 5px; background-color: yellow; min-height: 150px; min-width: 150px; }" 
"QSpinBox::up-arrow { border-left: 17px solid none;" 
"border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }" 
"QSpinBox::up-arrow:hover { border-left: 17px solid none; " 
"border-right: 17px solid none; border-bottom: 17px solid black; width: 0px; height: 0px; }" 
"QSpinBox::up-button { min-width: 80px; min-height: 77px; background-color: yellow; }" 
"QSpinBox::up-button:hover { min-width: 80px; min-height: 77px; background-color: yellow; }" 
"QSpinBox::down-arrow { border-left: 17px solid none;" 
"border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }" 


"QSpinBox::down-arrow:hover { border-left: 17px solid none;" 
"border-right: 17px solid none; border-top: 17px solid black; width: 0px; height: 0px; }" 
"QSpinBox::down-button { min-width: 80px; min-height: 77px; background-color: yellow; }" 
"QSpinBox::down-button:hover { min-width: 80px; min-height: 77px; background-color: yellow; }" 

enter image description here

+0

Он не работает с закрытием «}» либо –

+0

Это не работает для меня, выглядит по умолчанию. Что может быть причиной? –

+0

Хммм, в вашем коде вы имеете в виду QDoubleSpinBox, но стиль QSpinBox. Наверное, это может быть разница. – Pucor

0

Put точку с запятой в последняя строка строки стилей.

Использование

"QSpinBox::down-button:hover { width: 80px; height: 77px; background-color: yellow; };" 

вместо

"QSpinBox::down-button:hover { width: 80px; height: 77px; background-color: yellow; }" 
+0

Не работает ни –

+0

Затем вы можете изменить таблицу стилей позже. – ScarCode

+0

Я не. GUI разработан с помощью Qt-создателя, поэтому единственное, что я могу придумать, это то, что некоторое свойство может быть включено, чтобы эти изменения не применялись правильно –

0

К сожалению, я поздно. Check this. Я понял, что как «subcontrol-origin: ...», так и «subcontrol-position: ...» необходимо установить на кнопку «вниз» и кнопку «вверх». Я использую python + pyqt. надеюсь, это поможет вам.

 Смежные вопросы

  • Нет связанных вопросов^_^