Qt使用户无法移动QSplitter
Qt make QSplitter unmovable by user
如何让make qsplitter不能被用户移动并增加enable/disable这个功能的可能性?
谢谢。
可以使用 QSplitterHandler 作为 @G.M 来阻止 QSplitter
处理程序。在评论中建议。
这是一个示例代码(假设您使用的是 QMainWindow
)
#include <QCheckBox>
#include <QSplitter>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSplitter * poSplitter = new QSplitter(this);
QLabel * poLbl = new QLabel("Some place holer",this);
QCheckBox * poToggleSplitter = new QCheckBox("Block splitter", this);
poSplitter->addWidget(poLbl);
poSplitter->addWidget(poToggleSplitter);
connect(poToggleSplitter, &QCheckBox::clicked,
[poSplitter](bool bChecked)
{
// Block splitter movement
poSplitter->handle(1)->setEnabled(!bChecked);
});
this->setCentralWidget(poSplitter);
}
如何让make qsplitter不能被用户移动并增加enable/disable这个功能的可能性? 谢谢。
可以使用 QSplitterHandler 作为 @G.M 来阻止 QSplitter
处理程序。在评论中建议。
这是一个示例代码(假设您使用的是 QMainWindow
)
#include <QCheckBox>
#include <QSplitter>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSplitter * poSplitter = new QSplitter(this);
QLabel * poLbl = new QLabel("Some place holer",this);
QCheckBox * poToggleSplitter = new QCheckBox("Block splitter", this);
poSplitter->addWidget(poLbl);
poSplitter->addWidget(poToggleSplitter);
connect(poToggleSplitter, &QCheckBox::clicked,
[poSplitter](bool bChecked)
{
// Block splitter movement
poSplitter->handle(1)->setEnabled(!bChecked);
});
this->setCentralWidget(poSplitter);
}