当前位置: 首页 > news >正文

(17) 关于工具箱 QToolBox 的一个简单的范例使用,以了解其用法

(1)界面搭建

在这里插入图片描述

(2)控件间的逻辑关系实现

在这里插入图片描述

(3)重要的关于界面创建时 QToolBox 的使用 ui_widget . h 的内容如下,太长,给出源代码 :

#ifndef UI_WIDGET_H
#define UI_WIDGET_H#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QRadioButton>
#include <QtWidgets/QToolBox>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>QT_BEGIN_NAMESPACEclass Ui_Widget
{
public:QVBoxLayout *verticalLayout_3;QToolBox *toolBox;QWidget *page;QVBoxLayout *verticalLayout_2;QPushButton *pushButton;QLabel *label;QWidget *page_2;QVBoxLayout *verticalLayout;QGroupBox *groupBox;QGridLayout *gridLayout;QRadioButton *radioButtonBlack;QRadioButton *radioButtonRed;QLineEdit *lineEdit;void setupUi(QWidget * Widget) //形参是窗体 QWidget对象{if (Widget->objectName().isEmpty())Widget->setObjectName(QString::fromUtf8("Widget"));Widget->resize(292, 232);QFont font;font.setPointSize(14);Widget->setFont(font);                      //这是对本程序中 QWidget的设置Widget->setContextMenuPolicy(Qt::CustomContextMenu);verticalLayout_3 = new QVBoxLayout(Widget); //给窗体加个垂直布局verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));toolBox = new QToolBox(Widget);             //要加入到窗体里的工具箱 QToolBoxtoolBox->setObjectName(QString::fromUtf8("toolBox"));toolBox->setFrameShape(QFrame::Panel);      //这些边框的设置,是为了醒目一点toolBox->setFrameShadow(QFrame::Sunken);toolBox->setLineWidth(9);toolBox->setMidLineWidth(0);page = new QWidget();       //这些新的 QWidget是要加入到工具箱 QToolBox里的page->setObjectName(QString::fromUtf8("page"));page->setGeometry(QRect(0, 0, 262, 142));verticalLayout_2 = new QVBoxLayout(page);  //给 page1 设置个垂直布局verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));pushButton = new QPushButton(page);        //给 page1添加个按钮pushButton->setObjectName(QString::fromUtf8("pushButton"));verticalLayout_2->addWidget(pushButton);   //把 按钮加入到 page1里label = new QLabel(page);                  //生成标签并加入到 page1里label->setObjectName(QString::fromUtf8("label"));verticalLayout_2->addWidget(label);toolBox->addItem(page, QString::fromUtf8("Page 1")); //把完整的 page1加入到工具箱里page_2 = new QWidget();                    //要加入到工具箱里的 page2page_2->setObjectName(QString::fromUtf8("page_2"));page_2->setGeometry(QRect(0, 0, 262, 142));verticalLayout = new QVBoxLayout(page_2);  //page2 也采用垂直布局verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));groupBox = new QGroupBox(page_2);          //把两个单选按钮放入一个容器里groupBox->setObjectName(QString::fromUtf8("groupBox"));gridLayout = new QGridLayout(groupBox);    //容器采用了网格布局gridLayout->setObjectName(QString::fromUtf8("gridLayout"));radioButtonBlack = new QRadioButton(groupBox);  //生成黑色字体按钮radioButtonBlack->setObjectName(QString::fromUtf8("radioButtonBlack"));radioButtonBlack->setChecked(true);gridLayout->addWidget(radioButtonBlack, 0, 0, 1, 1);radioButtonRed = new QRadioButton(groupBox);    //生成红色字体按钮,并加入容器radioButtonRed->setObjectName(QString::fromUtf8("radioButtonRed"));gridLayout->addWidget(radioButtonRed, 0, 1, 1, 1);lineEdit = new QLineEdit(groupBox);        //把行文本框也加入 QGroupBoxlineEdit->setObjectName(QString::fromUtf8("lineEdit"));gridLayout->addWidget(lineEdit, 1, 0, 1, 2);verticalLayout->addWidget(groupBox);       //把制作好的 QGroupBox加入 page2toolBox->addItem(page_2, QString::fromUtf8("Page 2")); //把 page2窗体加入工具箱verticalLayout_3->addWidget(toolBox);      //把工具箱加入大窗体中retranslateUi(Widget);toolBox->setCurrentIndex(1);               //让工具箱默认显示第一个页面QMetaObject::connectSlotsByName(Widget);   //允许通过函数名来连接信号与槽} // setupUivoid retranslateUi(QWidget *Widget){Widget    ->setWindowTitle(QCoreApplication::translate("Widget", "H", nullptr));groupBox  ->setTitle      (QString());pushButton      ->setText(QCoreApplication::translate("Widget","PushButton", nullptr));label           ->setText(QCoreApplication::translate("Widget","TextLabel" , nullptr));radioButtonBlack->setText(QCoreApplication::translate("Widget","\351\273\221", nullptr));radioButtonRed  ->setText(QCoreApplication::translate("Widget","\347\272\242", nullptr));lineEdit        ->setText(QCoreApplication::translate("Widget","\345\223\210\345\223\210\345\223\210", nullptr));toolBox ->setItemText(toolBox->indexOf(page),QCoreApplication::translate("Widget", "Page 1", nullptr));toolBox ->setItemText(toolBox->indexOf(page_2),QCoreApplication::translate("Widget", "Page 2", nullptr));} // retranslateUi};namespace Ui {class Widget: public Ui_Widget {};
} // namespace UiQT_END_NAMESPACE#endif // UI_WIDGET_H

(4)

谢谢

相关文章:

  • 快速解决Linux 中yum镜像拉取失败问题
  • 从协议壁垒到无缝协同:Profibus转Profinet网关的智造赋能逻辑
  • Oracle基础知识(四)
  • 力扣HOT100之回溯:46. 全排列
  • 大数据治理:理论、实践与未来展望(一)
  • ROS云课三分钟-破壁篇GCompris-一小部分支持Edu应用列表-2025
  • 第一课如何学习课程
  • Dify源码学习
  • csp备考Day1|string和vector
  • 几个MySQL系统调优工具
  • 03-工具篇-SSH远程登录ubuntu系统
  • Kubernetes in action-机理
  • 【Web前端】jQuery入门与基础(一)
  • ISO 26262-5 评估硬件随机失效率
  • Linux—进程池实现
  • C++题解(33)2025年顺德区中小学生程序设计展示活动(初中组C++)U560876 美丽数(一)和 U560878 美丽数(二)题解
  • Python之两个爬虫案例实战(澎湃新闻+网易每日简报):附源码+解释
  • 爬虫核心概念与工作原理详解
  • AI专题:如何把DeepSeek变成你的AI个人助手
  • 《2.2.1顺序表的定义|精讲篇》
  • 重庆seo网站排名/在线培训管理系统
  • 苏州网站制作的公司/nba最新交易新闻
  • cms电影网站模板/个人如何做seo推广
  • 潍坊营销型网站制作/深圳排名seo
  • 怎么做微信小说网站吗/链接点击量软件
  • 正规做网站/重庆关键词自动排名