gpt4 book ai didi

c++ - Qt - 为什么我的小部件不会在拆分器内使用垂直布局排列?

转载 作者:行者123 更新时间:2023-11-28 08:21:38 25 4
gpt4 key购买 nike

根据下面的屏幕截图,为什么我的小部件不能在拆分器内使用垂直布局排列?

Window screenshot

/********************************************************************************
** Form generated from reading UI file 'test.ui'
**
** Created: Tue Apr 12 16:51:51 2011
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_TEST_H
#define UI_TEST_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QGridLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLineEdit>
#include <QtGui/QListWidget>
#include <QtGui/QMainWindow>
#include <QtGui/QSplitter>
#include <QtGui/QTreeWidget>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_MainWindow
{
public:
QWidget *centralwidget;
QGridLayout *gridLayout;
QSplitter *splitter;
QTreeWidget *treeWidget;
QWidget *widget;
QVBoxLayout *verticalLayout;
QLineEdit *lineEdit;
QListWidget *listWidget;

void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(800, 600);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
gridLayout = new QGridLayout(centralwidget);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
splitter = new QSplitter(centralwidget);
splitter->setObjectName(QString::fromUtf8("splitter"));
splitter->setOrientation(Qt::Horizontal);
treeWidget = new QTreeWidget(splitter);
QTreeWidgetItem *__qtreewidgetitem = new QTreeWidgetItem();
__qtreewidgetitem->setText(0, QString::fromUtf8("1"));
treeWidget->setHeaderItem(__qtreewidgetitem);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
splitter->addWidget(treeWidget);
widget = new QWidget(splitter);
widget->setObjectName(QString::fromUtf8("widget"));
verticalLayout = new QVBoxLayout(widget);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
verticalLayout->setContentsMargins(0, 0, 0, 0);
lineEdit = new QLineEdit(widget);
lineEdit->setObjectName(QString::fromUtf8("lineEdit"));

verticalLayout->addWidget(lineEdit);

listWidget = new QListWidget(widget);
listWidget->setObjectName(QString::fromUtf8("listWidget"));

verticalLayout->addWidget(listWidget);

splitter->addWidget(widget);

gridLayout->addWidget(splitter, 0, 0, 1, 1);

MainWindow->setCentralWidget(centralwidget);

retranslateUi(MainWindow);

QMetaObject::connectSlotsByName(MainWindow);
} // setupUi

void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
} // retranslateUi

};

namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_TEST_H

这只是为了问题的目的而在此处上传的虚拟用户界面。在我真正的 UI 设计中,我尝试了每一种可以想象的组合,但是一旦我开始使用分离器,它就会失去对齐。

最佳答案

我找来了设计师,毫不费力地做了你的布局。如屏幕截图右上角的层次结构所示,我创建了行编辑和文本编辑。加入垂直布局。创建了一个 treeWidget 并将其与水平拆分器中的布局连接起来。

通过编辑垂直布局属性,我能够让它看起来像你的,这样就有一个非零的布局边距。但看起来生成的代码在你的代码中明确地将其设置为零......

Widgets line up here

关于c++ - Qt - 为什么我的小部件不会在拆分器内使用垂直布局排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com