QGroupBox border - PullRequest
       1

QGroupBox border

17 голосов
/ 29 ноября 2010

После поиска некоторое время я увидел, что способ установить видимую границу в групповом поле - это использовать свойство StyleSheet. Я добавил:

border: 2px solid gray;

но есть пара проблем.

1) Все внутри групповой коробки также наследует этот параметр!

2) На границе есть маленькая дыра / кусок, отсутствующий рядом с заголовком.

Вот изображение того, о чем я говорю: alt text

Кто-нибудь знает, как это сделать правильно?

Спасибо

David

Ответы [ 3 ]

32 голосов
/ 29 ноября 2010

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

QGroupBox { 
     border: 2px solid gray; 
     border-radius: 3px; 
 } 

Эта таблица стилей будет установлена ​​только для групповых блоков.Однако, если вы поместите в это поле второй групповой блок, стиль будет распространяться и на этот.Что может быть хорошим или плохим.

Другой способ заключается в том, чтобы конкретно указать имя объекта виджета, к которому вы применяете стиль.Пример:

QGroupBox#MyGroupBox { 
     border: 2px solid gray; 
     border-radius: 3px; 
 } 

Это только применит стиль к групповому блоку с именем объекта MyGroupBox.

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

Пример. Это позволит установить заголовок в верхнем левом углу группового поля прямо внутри границы, без пропусков.

QGroupBox::title { 
    background-color: transparent;
     subcontrol-position: top left; /* position at the top left*/ 
     padding:2 13px;
 } 
1 голос
/ 31 января 2014

это работало для меня на Qt 5.1.

qApp->setStyleSheet("QGroupBox {  border: 1px solid gray;}");

Elimeléc

0 голосов
/ 29 ноября 2010

Укажите селектор для стиля группового блока, например:

QGroupBox
{
     border: 2px solid gray;
}

Что касается разрыва, вы, вероятно, можете это исправить, установив некоторые отступы. Проверьте документы здесь .

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