У меня есть горизонтальный макет, внутри которого я добавил групповое поле. Групповое поле разделено с помощью 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);
Я попробовал фактор растяжения, чтобы настроить кнопки, которые будут отображаться в правом нижнем углу сплиттера. Может кто-нибудь, пожалуйста, помогите мне с этим?
Попробуйте это (код немного отличается, потому что я пытался запустить его на моем компьютере):
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