Qt之QToolBox 实现某个页面的显示与隐藏 范例代码
时间: 2024-09-11 20:05:57 浏览: 145
在Qt中,`QToolBox`是一个用于组织和切换独立界面窗口的容器,类似于Windows系统里的工具栏。如果你想要实现某个特定页面的显示与隐藏,你可以使用它的`setCurrentWidget()`方法来设置当前可见的页,以及`hide()`或`show()`方法来控制页面的可见性。
下面是一个简单的示例代码,假设你有一个名为`MyPage`的自定义QWidget作为工具箱的内容:
```cpp
// 首先,在头文件中包含必要的库
#include <QApplication>
#include <QToolBox>
#include "mypage.h"
class MainWindow : public QWidget {
public:
MainWindow(QWidget *parent = nullptr) : QWidget(parent) {
// 创建QToolBox实例
QToolBox *toolbox = new QToolBox(this);
// 创建并设置MyPage
MyPage *page1 = new MyPage();
page1->setTitle("Page 1"); // 自定义页面标题
toolbox->addPage(page1, QIcon(":/images/page1.png")); // 添加页面并设置图标
// 显示默认页面
toolbox->setCurrentIndex(0); // 当前索引从0开始
// 显示/隐藏功能
QPushButton *showHideButton = new QPushButton("Show/Hide Page", this);
connect(showHideButton, &QPushButton::clicked, [toolbox](bool show) {
if (show) { // 展开页面
toolbox->setCurrentWidget(page1);
} else { // 收藏页面
toolbox->setHidden(true); // 隐藏整个工具箱
}
});
layout()->addWidget(showHideButton); // 将按钮添加到布局中
}
private slots:
// 仅作为示例,实际不需要这个槽函数
void onShowHide() {
qDebug() << "Showing/hiding";
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
在这个例子中,当点击"Show/Hide Page"按钮时,会切换到`MyPage`并展示或隐藏整个工具箱。注意,你需要替换`:/images/page1.png`为你的资源路径,并根据需要调整相关的UI元素和逻辑。如果只需要局部隐藏`MyPage`而不影响整个工具箱,可以使用`setGeometry()`方法来改变其大小或位置。
阅读全文