头文件
drawer.h
view plaincopy to clipboardprint?
#ifndef DRAWER_H
#define DRAWER_H
#include <QToolBox>
class QToolButton;
#include <QObject>
//QToolBox提供一种列状的层叠窗体
class Drawer:public QToolBox{
Q_OBJECT
public:
Drawer(QWidget *parent=0);
QToolButton *toolButton1_1;
QToolButton *toolButton1_2;
private slots:
void slotCls();
};
#endif // DRAWER_H
实现文件
main.cpp
view plaincopy to clipboardprint?
#include <QApplication>
#include <QToolButton>
#include <QToolBox>
#include <QGroupBox>
#include <QVBoxLayout>
#include <QWidget>
#include <QTextCodec>
#include <QMessageBox>
#include "drawer.h"
//构造函数初始化布局控件
Drawer::Drawer(QWidget *parent):QToolBox(parent){
//设置标题
setWindowTitle(tr("QQ"));
//创建一个 QGroupBox 对象
QGroupBox *groupBox1=new QGroupBox(this);
//创建按钮1
toolButton1_1=new QToolButton;
toolButton1_1->setText(tr("test"));
toolButton1_1->setAutoRaise(TRUE); //鼠标离开时 按钮恢复到谈起状态
toolButton1_1->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); //文字显示在图标下面
//创建一个 QGroupBox 对象
QGroupBox *groupBox2=new QGroupBox(this);
//创建按钮二
toolButton1_2=new QToolButton;
toolButton1_2->setText(tr("test"));
toolButton1_2->setAutoRaise(TRUE);
toolButton1_2->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
//第一个抽屉
QVBoxLayout *layout1=new QVBoxLayout(groupBox1);
layout1->setMargin(10);
layout1->setAlignment(Qt::AlignHCenter);
layout1->addWidget(toolButton1_1);
//第二个抽屉
QVBoxLayout *layout2=new QVBoxLayout(groupBox2);
layout2->setMargin(10);
layout2->setAlignment(Qt::AlignHCenter);
layout2->addWidget(toolButton1_2);
//把抽屉插入到 QToolBox中
this->addItem((QWidget *)groupBox1,tr("userName"));
this->addItem((QWidget *)groupBox2,tr("homePage"));
connect(toolButton1_1,SIGNAL(clicked()),this,SLOT(slotCls()));
}
void Drawer::slotCls(){
QMessageBox *msg=new QMessageBox(this);
msg->setText("user name is Riren");
msg->exec();
}
int main(int argc,char ** argv){
QApplication app(argc,argv);
Drawer drawc;
drawc.show();
return app.exec();
}
本文介绍如何利用Qt中的QToolBox组件来创建一个具有两个抽屉的界面,每个抽屉包含一个QToolButton。通过点击按钮触发消息框展示用户名。此示例展示了QToolBox的基本用法及其在界面设计中的应用。
1万+

被折叠的 条评论
为什么被折叠?



