使用qt C++创建左侧的较窄区域,然后添加六个选项:"IMU"、"LIDAR1"、"LIDAR2"、"CAMERA1"、"CAMERA2"和"RTK", 点击每个选项会切换右侧大面积区域的配置列表
时间: 2023-08-06 15:04:26 浏览: 225
以下是一个使用Qt C++创建左侧选项区域并实现选项切换的示例代码:
mainwindow.h:
```cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QListWidget>
#include <QStackedWidget>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void handleMenuClicked(QListWidgetItem *item);
private:
void createMenu();
void createConfigPages();
QListWidget *menuList;
QStackedWidget *configPages;
};
#endif // MAINWINDOW_H
```
mainwindow.cpp:
```cpp
#include "mainwindow.h"
#include <QLabel>
#include <QVBoxLayout>
#include <QStackedWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 设置窗口标题
setWindowTitle("配置列表");
// 创建菜单区域
createMenu();
// 创建配置列表区域
createConfigPages();
// 创建布局
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(menuList);
mainLayout->addWidget(configPages);
QWidget *centralWidget = new QWidget;
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
}
MainWindow::~MainWindow()
{
}
void MainWindow::createMenu()
{
// 创建菜单列表
menuList = new QListWidget;
menuList->addItem("IMU");
menuList->addItem("LIDAR1");
menuList->addItem("LIDAR2");
menuList->addItem("CAMERA1");
menuList->addItem("CAMERA2");
menuList->addItem("RTK");
// 连接菜单点击信号和槽函数
connect(menuList, &QListWidget::itemClicked, this, &MainWindow::handleMenuClicked);
}
void MainWindow::createConfigPages()
{
// 创建配置页面
configPages = new QStackedWidget;
// 创建IMU配置页面
QWidget *imuPage = new QWidget;
QLabel *imuLabel = new QLabel("IMU配置列表");
QVBoxLayout *imuLayout = new QVBoxLayout;
imuLayout->addWidget(imuLabel);
imuPage->setLayout(imuLayout);
configPages->addWidget(imuPage);
// 创建LIDAR1配置页面
QWidget *lidar1Page = new QWidget;
QLabel *lidar1Label = new QLabel("LIDAR1配置列表");
QVBoxLayout *lidar1Layout = new QVBoxLayout;
lidar1Layout->addWidget(lidar1Label);
lidar1Page->setLayout(lidar1Layout);
configPages->addWidget(lidar1Page);
// 创建LIDAR2配置页面
QWidget *lidar2Page = new QWidget;
QLabel *lidar2Label = new QLabel("LIDAR2配置列表");
QVBoxLayout *lidar2Layout = new QVBoxLayout;
lidar2Layout->addWidget(lidar2Label);
lidar2Page->setLayout(lidar2Layout);
configPages->addWidget(lidar2Page);
// 创建CAMERA1配置页面
QWidget *camera1Page = new QWidget;
QLabel *camera1Label = new QLabel("CAMERA1配置列表");
QVBoxLayout *camera1Layout = new QVBoxLayout;
camera1Layout->addWidget(camera1Label);
camera1Page->setLayout(camera1Layout);
configPages->addWidget(camera1Page);
// 创建CAMERA2配置页面
QWidget *camera2Page = new QWidget;
QLabel *camera2Label = new QLabel("CAMERA2配置列表");
QVBoxLayout *camera2Layout = new QVBoxLayout;
camera2Layout->addWidget(camera2Label);
camera2Page->setLayout(camera2Layout);
configPages->addWidget(camera2Page);
// 创建RTK配置页面
QWidget *rtkPage = new QWidget;
QLabel *rtkLabel = new QLabel("RTK配置列表");
QVBoxLayout *rtkLayout = new QVBoxLayout;
rtkLayout->addWidget(rtkLabel);
rtkPage->setLayout(rtkLayout);
configPages->addWidget(rtkPage);
}
void MainWindow::handleMenuClicked(QListWidgetItem *item)
{
// 获取所点击的选项的索引
int index = menuList->row(item);
// 切换到相应的配置页面
configPages->setCurrentIndex(index);
}
```
在main.cpp中添加以下代码:
```cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
```
这段代码创建了一个主窗口,其中包括一个左侧选项区域和一个右侧的配置列表区域。通过点击左侧选项,可以切换到对应的配置列表。你可以根据实际需要修改和扩展这个示例代码,以满足你的需求。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)