2016-02-08 6 views
0

Я пытаюсь программно установить выравнивание заголовка QGroupBox. Согласно documentation я пытаюсь сделать это следующим образом:Установить выравнивание заголовка QGroupBox

MainWidget::MainWidget (QWidget * parent) 
      : QWidget (parent) 
{ 
    setWindowTitle (tr ("QGropBox Title Alignment issue")); 

    QGroupBox * group = new QGroupBox ("Group Title", this); 
    QVBoxLayout * layoutTop = new QVBoxLayout(); 
    layoutTop->addWidget (group); 
    group->setAlignment (Qt::AlignHCenter); 
    this->setLayout (layoutTop); 
} 

Но я получил неожиданный результат и название одной линии с левой стороны коробки группы.

enter image description here

Такое поведение у меня с окружающей средой:

  • Debian 9.0 (SID);
  • Qt 5.5.1 (устанавливается из репозитория);
  • XMonad DE.

enter image description here

Такое же поведение у меня со следующей среды:

  • Ubuntu 15.10;
  • Qt 5.4 (устанавливается вручную с помощью автономного установщика);
  • KDE.

Но! Если я использую Qt, установленный из репозитория (Qt 5.4.2), заголовок будет выравниваться по центру по умолчанию. Но если я изменил выравнивание влево, это не изменится.

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

Итак, мой вопрос: почему я не могу управлять выравниванием заголовка группы.

ответ

1

Похоже, что в Qt 5.5.1 есть ошибка для некоторых визуальных стилей, когда выравнивание заголовка QGroupBox не учитывается при вычислении прямоугольника заголовка: QTBUG-49068: QGroupBox title does not follow alignment with fusion style.

Вы можете загрузить самую последнюю версию из репозитория git, построить ее и проверить, исправлена ​​ли ошибка (была для стиля Fusion: qt commit 139953).

Если ошибка все еще возникает, я думаю, вы должны отправить вопрос на Qt bugtracker.

+0

Я пробовал обедать своим примером с разными опциями '-style'. С 'fusion' и' gtk' проблема существует, но с 'windows' она не работает. – Gluttton

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