QLabel вставляет (автоматически) пустую строку - PullRequest
0 голосов
/ 14 января 2019

У меня есть QT-UI с некоторыми ярлыками. Он структурирован следующим образом: enter image description here

Все метки в виде списка, это с вертикальной прокруткой. Прежде чем я поместил большой текст на ярлыки, я установил его максимальную ширину. Когда я устанавливаю большой текст для меток, QLabel вставляет пустую строку сверху. Я без ума от этого! Что я могу сделать, чтобы избавиться от этой пустой строки?

Вот фотография основного интерфейса:
enter image description here

Как вы можете видеть, я поместил зеленую рамку на некоторые метки, чтобы вы могли лучше видеть пустую строку (вставленную QLabel!). Я просто помещаю текст наподобие «visuelle Kontrolle», но QLabel вставляет разрыв строки в начало моего текста. Так выглядит, как ты видишь.

EDIT: Кроме того, я поместил небольшой кусочек кода, чтобы вы могли увидеть, что я здесь делаю. Сначала я установил максимальный размер для меток:

auto width = listCtrl->verticalScrollBar()->sizeHint().width();
auto items = {
    ui->m_editKKS,
    ui->m_editOrt,
    ui->m_editKurzbezeichnung,
    ui->m_editLetzterSchaden};

for (QLabel* item : items)
{
    auto margin = 15;
    item->setMaximumWidth(item->width() - (width + margin));
    // item->setStyleSheet("border:1px solid green;");
}

ui->m_editTaetigkeit->setMaximumWidth(ui->m_editTaetigkeit->width() - width);

Затем я положил текст к элементам управления. Для каждого элемента управления я использую setText:

ui->m_editLetzterSchaden->setText("some text comes here...");
and so on...

EDIT:

Я заметил кое-что (возможно) довольно важное. Если я построю свой пользовательский интерфейс так, чтобы он не охватывался вертикальной компоновкой, тогда QLabels будет отображаться правильно. Но если я построю их так, чтобы все элементы были расположены по вертикали, то возникнет проблема с рендерингом (как описано выше). Это чрезвычайно странное поведение понятно, и человек может переключаться назад и вперед: с QVBoxLayout-> ошибка дисплея, без QVBoxLayout-> без ошибок и так далее ...

Здесь вы можете увидеть UI-код без вертикальной разметки вокруг UI-элементов:

[?xml version="1.0" encoding="UTF-8"?]
[ui version="4.0"]
 [class]PrjNameMeldung1_5[/class]
 [widget class="QMainWindow" name="PrjNameMeldung1_5"]
  [property name="geometry"]
   [rect]
    [x]0[/x]
    [y]0[/y]
    [width]375[/width]
    [height]444[/height]
   [/rect]
  [/property]
  [property name="windowTitle"]
   [string]MainWindow[/string]
  [/property]
  [widget class="QWidget" name="centralwidget"]
   [widget class="QWidget" name="gridLayoutWidget"]
    [property name="geometry"]
     [rect]
      [x]9[/x]
      [y]25[/y]
      [width]361[/width]
      [height]401[/height]
     [/rect]
    [/property]
    [layout class="QGridLayout" name="gridLayout"]
     [item row="3" column="0"]
      [widget class="PrjListControl" name="listWidget"]
       [property name="sizePolicy"]
        [sizepolicy hsizetype="Expanding" vsizetype="Expanding"]
         [horstretch]0[/horstretch]
         [verstretch]0[/verstretch]
        [/sizepolicy]
       [/property]
      [/widget]
     [/item]
     [item row="1" column="0"]
      [widget class="QLabel" name="m_editTPAggregat"]
       [property name="text"]
        [string]TPAggregat[/string]
       [/property]
      [/widget]
     [/item]
     [item row="2" column="0"]
      [widget class="QLabel" name="m_labelAuswahl"]
       [property name="text"]
        [string]Baugruppe[/string]
       [/property]
       [property name="alignment"]
        [set]Qt::AlignCenter[/set]
       [/property]
      [/widget]
     [/item]
     [item row="0" column="0"]
      [widget class="QLabel" name="m_editTP"]
       [property name="text"]
        [string]TP[/string]
       [/property]
       [property name="alignment"]
        [set]Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop[/set]
       [/property]
      [/widget]
     [/item]
    [/layout]
   [/widget]
   [widget class="PrjToolBar" name="m_groupMenuBar" native="true"]
    [property name="geometry"]
     [rect]
      [x]9[/x]
      [y]425[/y]
      [width]357[/width]
      [height]16[/height]
     [/rect]
    [/property]
    [property name="sizePolicy"]
     [sizepolicy hsizetype="Preferred" vsizetype="Fixed"]
      [horstretch]0[/horstretch]
      [verstretch]0[/verstretch]
     [/sizepolicy]
    [/property]
    [property name="minimumSize"]
     [size]
      [width]0[/width]
      [height]10[/height]
     [/size]
    [/property]
   [/widget]
   [widget class="PrjNavigationBar" name="m_groupWindowTitle" native="true"]
    [property name="geometry"]
     [rect]
      [x]9[/x]
      [y]9[/y]
      [width]357[/width]
      [height]16[/height]
     [/rect]
    [/property]
    [property name="sizePolicy"]
     [sizepolicy hsizetype="Preferred" vsizetype="Fixed"]
      [horstretch]0[/horstretch]
      [verstretch]0[/verstretch]
     [/sizepolicy]
    [/property]
    [property name="minimumSize"]
     [size]
      [width]0[/width]
      [height]10[/height]
     [/size]
    [/property]
   [/widget]
  [/widget]
 [/widget]
 [customwidgets]
  [customwidget]
   [class]PrjToolBar[/class]
   [extends]QWidget[/extends]
   [header location="global"]controls/Prjtoolbar.h[/header]
   [container]1[/container]
  [/customwidget]
  [customwidget]
   [class]PrjNavigationBar[/class]
   [extends]QWidget[/extends]
   [header location="global"]controls/Prjnavigationbar.h[/header]
   [container]1[/container]
  [/customwidget]
  [customwidget]
   [class]PrjListControl[/class]
   [extends]QListWidget[/extends]
   [header location="global"]controls/Prjlistcontrol.h[/header]
  [/customwidget]
 [/customwidgets]
 [resources/]
 [connections/]
[/ui]

И здесь вы можете увидеть UI-код с вертикальным расположением элементов UI:

[?xml version="1.0" encoding="UTF-8"?]
[ui version="4.0"]
 [class]PrjNameMeldung1_5[/class]
 [widget class="QMainWindow" name="PrjNameMeldung1_5"]
  [property name="geometry"]
   [rect]
    [x]0[/x]
    [y]0[/y]
    [width]375[/width]
    [height]444[/height]
   [/rect]
  [/property]
  [property name="windowTitle"]
   [string]MainWindow[/string]
  [/property]
  [widget class="QWidget" name="centralwidget"]
   [layout class="QVBoxLayout" name="verticalLayout"]
    [item]
     [widget class="PrjNavigationBar" name="m_groupWindowTitle" native="true"]
      [property name="sizePolicy"]
       [sizepolicy hsizetype="Preferred" vsizetype="Fixed"]
        [horstretch]0[/horstretch]
        [verstretch]0[/verstretch]
       [/sizepolicy]
      [/property]
      [property name="minimumSize"]
       [size]
        [width]0[/width]
        [height]10[/height]
       [/size]
      [/property]
     [/widget]
    [/item]
    [item]
     [layout class="QGridLayout" name="gridLayout"]
      [item row="3" column="0"]
       [widget class="PrjListControl" name="listWidget"]
        [property name="sizePolicy"]
         [sizepolicy hsizetype="Expanding" vsizetype="Expanding"]
          [horstretch]0[/horstretch]
          [verstretch]0[/verstretch]
         [/sizepolicy]
        [/property]
       [/widget]
      [/item]
      [item row="1" column="0"]
       [widget class="QLabel" name="m_editTPAggregat"]
        [property name="text"]
         [string]TPAggregat[/string]
        [/property]
       [/widget]
      [/item]
      [item row="2" column="0"]
       [widget class="QLabel" name="m_labelAuswahl"]
        [property name="text"]
         [string]Baugruppe[/string]
        [/property]
        [property name="alignment"]
         [set]Qt::AlignCenter[/set]
        [/property]
       [/widget]
      [/item]
      [item row="0" column="0"]
       [widget class="QLabel" name="m_editTP"]
        [property name="text"]
         [string]TP[/string]
        [/property]
        [property name="alignment"]
         [set]Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop[/set]
        [/property]
       [/widget]
      [/item]
     [/layout]
    [/item]
    [item]
     [widget class="PrjToolBar" name="m_groupMenuBar" native="true"]
      [property name="sizePolicy"]
       [sizepolicy hsizetype="Preferred" vsizetype="Fixed"]
        [horstretch]0[/horstretch]
        [verstretch]0[/verstretch]
       [/sizepolicy]
      [/property]
      [property name="minimumSize"]
       [size]
        [width]0[/width]
        [height]10[/height]
       [/size]
      [/property]
     [/widget]
    [/item]
   [/layout]
  [/widget]
 [/widget]
 [customwidgets]
  [customwidget]
   [class]PrjToolBar[/class]
   [extends]QWidget[/extends]
   [header location="global"]controls/Prjtoolbar.h[/header]
   [container]1[/container]
  [/customwidget]
  [customwidget]
   [class]PrjNavigationBar[/class]
   [extends]QWidget[/extends]
   [header location="global"]controls/Prjnavigationbar.h[/header]
   [container]1[/container]
  [/customwidget]
  [customwidget]
   [class]PrjListControl[/class]
   [extends]QListWidget[/extends]
   [header location="global"]controls/Prjlistcontrol.h[/header]
  [/customwidget]
 [/customwidgets]
 [resources/]
 [connections/]
[/ui]
...