QT实现抽屉菜单

发布时间:2026/7/24 22:47:06

QT实现抽屉菜单 实现一个点击按钮后弹出下方更多选项或者文本内容的功能基础逻辑创建一个QScrollArea里面包含多个pushbutton和多个widget然后通过点击pushbutton显隐widget即可。目录一、创建控件​编辑二、设置widget的最大大小三、设置Scrollarea布局的layoutSpacing和layoutSizeConstraint的内容四、代码实现显隐一、创建控件二、设置widget的最大大小不设置这一步可能导致显示widget显示得特别大这是一种方式文章最后还有一种占位的方式。三、设置Scrollarea布局的layoutSpacing和layoutSizeConstraint的内容四、代码实现显隐//.h bool flag_4 false; bool flag_5 false; //.cpp void MainWindow::on_pushButton_4_clicked() { if(!flag_4){ ui-widget_4-hide(); flag_4 true; }else{ ui-widget_4-show(); flag_4 false; } } void MainWindow::on_pushButton_5_clicked() { if(!flag_5){ ui-widget_5-hide(); flag_5 true; }else{ ui-widget_5-show(); flag_5 false; } }补充占位方式让widget控件隐藏的时候pushbutton不会下移//.h // 保存抽屉内容原始高度 int m_dWidgetHeight 0; int m_lkWidgetHeight 0; //.cpp .... { ui-setupUi(this); // 记录widget展开时的高度 m_dWidgetHeight ui-widgetDataEntry-height(); m_lWidgetHeight ui-widgetLabWork-height(); } //槽函数中 isDataEntry !isDataEntry;//先翻转了判断变量这个就是之前的flag_4 if(isDataEntry) { // 展开恢复原始高度显示内容 ui-widgetD-setFixedHeight(m_dWidgetHeight); ui-widgetD-setVisible(isDataEntry); } else { // 收起高度置0看不见但是控件占位存在下方按钮不会移动 ui-widgetDsetFixedHeight(0); ui-widgetD-setVisible(isDataEntry); }//另一个flag_5同理

相关新闻