цвет QPushButton или QToolButton - PullRequest
       1

цвет QPushButton или QToolButton

1 голос
/ 13 октября 2011

Я использую Qstylesheet для управления поведением некоторых QPushButtons и QToolButtons. Когда я парю над ними, они становятся черными, как я хочу. Однако, как только я нажимаю на них, они приобретают смешной серовато-красноватый цвет, и внутри них нарисована красная коробка.

Какое свойство или псевдо-состояние я должен установить, чтобы избежать такого поведения? Я прошел через все свойства, связанные с выделением и фоном, и не могу заставить это уйти

1 Ответ

5 голосов
/ 14 октября 2011

Не видя вашего стиля, немного сложно решить вашу проблему.Поэтому я немного объясню, как все это работает, и, надеюсь, вы сможете решить, как лучше всего решить вашу проблему.

Во-первых, при разработке вашей кнопки важно, чтобы вы покрывали все свои базы.Я уверен, что вы знаете большинство из этого, но на всякий случай ...

QPushButton и QToolButton имеют несколько состояний, которые можно стилизовать, поэтому вы хотите убедиться, что ваша кнопка заметно отличаетсядля каждого состояния, чтобы пользователь мог определить разницу.

QPushButton
{ 
   //  The default look of your button
}

QPushButton:disabled 
{ 
}

QPushButton:pressed  
{  
}

QPushButton:focus    
{
}

QPushButton:hover
{
}

QPushButton:checked
{
}

Используйте такие вещи, как цвет фона, цвет переднего плана, цвет границы, и, как правило, вы готовы.

background-color: red;
color: white;  // foreground color
border-width: 1px;
border-color: black;

Второе, что нужно знать, это то, что стили могут наследоваться.Поэтому будьте очень осторожны при добавлении стиля в виджет.Когда вы создаете стиль, старайтесь быть конкретным.Если вы назначите этот стиль чему-то в своем пользовательском интерфейсе, цвет фона будет синим, но опасно то, что все дочерние виджеты этого также будут наследовать этот стиль.

QWidget
{
    background-color: blue;
}

Может быть, это то, что вы хотите, но часто нет.Поэтому, если вы используете кнопки стилей, всегда помещайте вокруг них селектор QPushButton или QToolButton, то же самое должно применяться и к другим вещам, которые вы создаете.Так что, возможно, именно отсюда происходит ваш сероватый красноватый цвет.

Теперь, последнее, что нужно знать о стилях кнопок, это прямоугольник фокуса.Это раздражающая пунктирная линия, которая появляется, когда ваша кнопка сфокусирована.См. Рисунок ниже.

Focus rectangle

К сожалению, нет способа стилизовать прямоугольник фокуса с использованием таблиц стилей.Но вы можете избавиться от этого, если вы этого хотите.Смотрите следующую ссылку:

Избавление от прямоугольника фокуса

Итак, в итоге ...

  1. Убедитесь, что ваша кнопкаСтиль охватывает все состояния, которые вам нужны.
  2. Убедитесь, что на вашу кнопку не влияют никакие другие стили, добавленные в другие виджеты.
  3. Либо измените, либо по необходимости избавьтесь от прямоугольника фокуса.

Надеюсь, это поможет.Если вам нужна более конкретная помощь, пожалуйста, опубликуйте свой стиль, и я посмотрю на него.

...