crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QGroupBox и setStyleSheet, как избавиться от артефакта?
balbes
  опции профиля:
сообщение 5.4.2017, 11:07
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 62
Регистрация: 11.10.2007
Пользователь №: 10

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет.
В переопределенном классе QGroupBox, устанавливаю ему border и цвет:

setStyleSheet( "QGroupBox { border: 1px solid #8f8f91; }");:


Но почему-то появляется артефакт:
Прикрепленное изображение

Как видно по картинке во вложении, отсутвует часть линни в левом верхнем углу, около названия.
Как победить это?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 5.4.2017, 11:27
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


balbes,

1 в QGroupBox назначен компоновщик ?
2 какие отступы у компоновщика ?
3 лежит ли надпись в этом компоновщике ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
balbes
  опции профиля:
сообщение 5.4.2017, 18:01
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 62
Регистрация: 11.10.2007
Пользователь №: 10

Спасибо сказали: 0 раз(а)




Репутация:   0  


1. Да, назначен. QHBoxLayout. А в нем еще куча компановщмков, для расстановки виджетов.
2. Как я понимаю отступы у всех компановщиков внутри по умолчанию
3. Надпись назначается стандартными средствами QGroupBox, с помощью QGroupBox::setTitle

Попробовал сделать чистый класс производный от QGroupBox, без компановщиков - то же самое.

Чтобы увидеть данный артефакт:
class CDeviceWidget : public QGroupBox
{
Q_OBJECT
public:
    CDeviceWidget(QWidget *parent = 0);
};

CDeviceWidget::CDeviceWidget(QWidget *parent) : QGroupBox(parent)
{
    setTitle("Вычислительный модуль");
    setStyleSheet( "QGroupBox { border: 1px solid #8f8f91; }");
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 5.4.2017, 23:38
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


balbes, тогда понятно ) Вот пример из справки Qt

Customizing QGroupBox
Let us look at an example that moves the QGroupBox's title to the center.

  QGroupBox {
      background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                        stop: 0 #E0E0E0, stop: 1 #FFFFFF);
      border: 2px solid gray;
      border-radius: 5px;
      margin-top: 1ex; /* leave space at the top for the title */
  }

  QGroupBox::title {
      subcontrol-origin: margin;
      subcontrol-position: top center; /* position at the top center */
      padding: 0 3px;
      background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                        stop: 0 #FF0ECE, stop: 1 #FFFFFF);
  }


Сообщение отредактировал Алексей1153 - 5.4.2017, 23:39
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 3:14