Подтвердить что ты не робот

Граница QGroupBox

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

border: 2px solid gray;

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

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

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

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

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

Спасибо,

Дэвид

4b9b3361

Ответ 1

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

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

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

Другим способом является специально objectName виджета, к которому вы применяете стиль. Пример:

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;
 } 

Ответ 2

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

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

Elimeléc

Ответ 3

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

QGroupBox
{
     border: 2px solid gray;
}

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