У меня есть QT-UI с некоторыми ярлыками. Он структурирован следующим образом:
Все метки в виде списка, это с вертикальной прокруткой. Прежде чем я поместил большой текст на ярлыки, я установил его максимальную ширину.
Когда я устанавливаю большой текст для меток, QLabel вставляет пустую строку сверху.
Я без ума от этого! Что я могу сделать, чтобы избавиться от этой пустой строки?
Вот фотография основного интерфейса:
Как вы можете видеть, я поместил зеленую рамку на некоторые метки, чтобы вы могли лучше видеть пустую строку (вставленную 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]