1

我有一个水平布局,在其中添加了一个组框。分组框使用 a 拆分QSplitter并包含 aQListWidget和 a QTextBrowser。我想在窗口的右下角添加两个按钮以在QTextBrowser. 我在布局中添加了两个按钮,但无法在右下角添加它们。这是我的代码:

   _groupBox = new QGroupBox();
   _groupBox->setTitle("Config Help System");
   _verticalLayout = new QVBoxLayout(_groupBox);
   this->setLayout(_verticalLayout);
   _splitter = new QSplitter(_groupBox);
   _splitter->setOrientation(Qt::Horizontal);

   _list = new QListWidget(_splitter);
   QListWidgetItem *item1 = new QListWidgetItem;
   item1->setText("About Config Tool");
   _list->insertItem(0, item1);
   QListWidgetItem *item2 = new QListWidgetItem;
   item2->setText("Configuration Help");
   _list->insertItem(1, item2);
   _list->setSelectionMode(QAbstractItemView::SingleSelection);
   _splitter->addWidget(_list);

   _helpBrowser = new QTextBrowser(_splitter);
   _homeButton = new QPushButton(tr("&Home"), this);
   _backButton = new QPushButton(tr("&Back"), this);
   _closeButton = new QPushButton(tr("&Close"), this);

   QHBoxLayout *buttonLayout = new QHBoxLayout(this);
   buttonLayout->addWidget(_homeButton);
   buttonLayout->addWidget(_backButton);
   buttonLayout->addStretch(1);
   buttonLayout->addWidget(_closeButton)

   _splitter->addWidget(_helpBrowser);
   _splitter->setStretchFactor(1,1);

   _verticalLayout->addWidget(_splitter);
   this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
   this->resize(1000,600);

我已经尝试过拉伸因子来调整按钮以显示在拆分器的右下角。任何人都可以帮我吗?

4

1 回答 1

1

试试这个(代码略有不同,因为我试图在我的电脑上运行它):

QWidget *www = new QWidget;
QGroupBox*    _groupBox = new QGroupBox();
_groupBox->setTitle("Config Help System");
QVBoxLayout *_verticalLayout = new QVBoxLayout(_groupBox);
www->setLayout(_verticalLayout);
QSplitter *_splitter = new QSplitter(_groupBox);
_splitter->setOrientation(Qt::Horizontal);

QListWidget *_list = new QListWidget(_splitter);
QListWidgetItem *item1 = new QListWidgetItem;
item1->setText("About Config Tool");
_list->insertItem(0, item1);
QListWidgetItem *item2 = new QListWidgetItem;
item2->setText("Configuration Help");
_list->insertItem(1, item2);
_list->setSelectionMode(QAbstractItemView::SingleSelection);
_splitter->addWidget(_list);

QTextBrowser *_helpBrowser = new QTextBrowser(_splitter);
QPushButton* _homeButton = new QPushButton("home");
QPushButton* _backButton = new QPushButton("back");
QPushButton *_closeButton = new QPushButton("close");

QHBoxLayout *buttonLayout = new QHBoxLayout(this);
buttonLayout->addWidget(_closeButton);//new
buttonLayout->addStretch(1);
buttonLayout->addWidget(_homeButton);//new
buttonLayout->addWidget(_backButton);//new


_splitter->addWidget(_helpBrowser);
_splitter->setStretchFactor(1,1);

_verticalLayout->addWidget(_splitter);

_verticalLayout->addLayout(buttonLayout);//new

www->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
www->resize(1000,600);
www->show();

结果:

在此处输入图像描述

编辑:

#include <QGroupBox>
#include <QListWidget>
#include <QTextBrowser>
#include <QListWidgetItem>//do different includes to use my code inside main

//...

QHBoxLayout *buttonLayout = new QHBoxLayout;//just remove the parent
于 2014-10-20T12:16:05.273 回答