首页 > 解决方案 > QLabel 插入(自动)一个空行

问题描述

我有一个带有一些标签的 QT-UI。它的结构如下: 在此处输入图像描述

所有标签都在一个列表小部件中,这是垂直滚动的。在将大文本添加到标签之前,我设置了它的最大宽度。当我将大文本设置为标签时,QLabel 在顶部插入一个空行。我疯了!我该怎么做才能摆脱这个空行?

这是基本 UI 的照片:
在此处输入图像描述

你怎么看,我给一些标签加了绿色边框,这样你可以更好地看到空白行(由QLabel插入!)。我只是在输入“visuelle Kontrolle”之类的文本,但 QLabel 在我的文本开头插入了一个换行符。所以它看起来你怎么能看到。

编辑:另外我放了一小段代码,所以你可以看到我在这里做什么。首先,我为标签设置了 maximumSize:

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...

编辑:

我注意到一些(可能)非常重要的事情。如果我构建我的 UI 以使其不被垂直布局所包含,那么 QLabels 将正确显示。但是,如果我构建它们以使所有元素都由垂直布局跨越,那么就会出现渲染问题(如上所述)。这种极其奇怪的行为是可以理解的,man可以来回切换:有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]

标签: c++iosqtqlabelqlistwidget

解决方案


推荐阅读