Добавление кнопок «вперед» и «назад» внутри макета

У меня есть горизонтальный макет, внутри которого я добавил групповое поле. Групповое поле разделено с помощью QSplitter и содержат QListWidget и 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);

Я попробовал фактор растяжения, чтобы настроить кнопки, которые будут отображаться в правом нижнем углу сплиттера. Может кто-нибудь, пожалуйста, помогите мне с этим?

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
1

Другие решения


По вопросам рекламы [email protected]