QT学习 第一章:基本对话框--实现QQ抽屉效果
2011-05-12 15:02
1061 查看
程序实现效果:
创建文件夹Drawer,以下是代码(三个文件)
/** Object: Drawer ** Desc: 实现QQ抽屉效果 ** File: main.cpp ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-12 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #include <QApplication> // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。 #include "Drawer.h" // 自定义类头文件 int main(int argc, char *argv[]){ QApplication app(argc, argv); Drawer *drawer = new Drawer(); drawer->show(); return app.exec(); }
/** Object: Drawer ** Desc: 实现QQ抽屉效果 ** File: Drawer.h ** Class: Drawer 实现QQ抽屉效果类 头文件 ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-12 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #ifndef DRAWER_H #define DRAWER_H #include <QtGui> class Drawer : public QToolBox { Q_OBJECT public: Drawer(QWidget *parent = 0); QToolButton *m_pTB1_1; QToolButton *m_pTB1_2; QToolButton *m_pTB1_3; QToolButton *m_pTB1_4; QToolButton *m_pTB1_5; QToolButton *m_pTB2_1; QToolButton *m_pTB2_2; QToolButton *m_pTB3_1; QToolButton *m_pTB3_2; private: QToolButton * initToolButton(const QString &sText, const QString &sIconFile); private slots: }; #endif // DRAWER_H
/** Object: Drawer ** Desc: 实现QQ抽屉效果 ** File: Drawer.cpp ** Class: Drawer 实现QQ抽屉效果类 源文件 ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-12 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #include "Drawer.h" Drawer::Drawer(QWidget *parent) : QToolBox(parent){ setWindowTitle(tr("My QQ")); // 设置窗口标题 m_pTB1_1 = initToolButton(tr("beibei"), QString("images/bb.png")); // 工具按钮控件实例化并初始化 m_pTB1_2 = initToolButton(tr("jingjing"), QString("images/jj.png")); m_pTB1_3 = initToolButton(tr("huanhuan"), QString("images/hh.png")); m_pTB1_4 = initToolButton(tr("yingying"), QString("images/yy.png")); m_pTB1_5 = initToolButton(tr("nini"), QString("images/nn.png")); m_pTB2_1 = initToolButton(tr("pizicai"), QString("images/1.png")); m_pTB2_2 = initToolButton(tr("feiyang"), QString("images/2.png")); m_pTB3_1 = initToolButton(tr("QQ"), QString("images/3.png")); m_pTB3_2 = initToolButton(tr("angel"), QString("images/4.png")); QGroupBox *pGroupBox1 = new QGroupBox; // 分组盒子控件 QGroupBox *pGroupBox2 = new QGroupBox; QGroupBox *pGroupBox3 = new QGroupBox; QVBoxLayout *pVBL1 = new QVBoxLayout(pGroupBox1); // 分组盒子控件的垂直布局 QVBoxLayout *pVBL2 = new QVBoxLayout(pGroupBox2); QVBoxLayout *pVBL3 = new QVBoxLayout(pGroupBox3); pVBL1->setMargin(10); // 布局控件四周边距为10像素。 pVBL1->setAlignment(Qt::AlignHCenter); // 布局中元素对齐方式为水平居中 pVBL2->setMargin(10); pVBL2->setAlignment(Qt::AlignHCenter); pVBL3->setMargin(10); pVBL3->setAlignment(Qt::AlignHCenter); pVBL1->addWidget(m_pTB1_1); // 按钮控件加入布局中 pVBL1->addWidget(m_pTB1_2); pVBL1->addWidget(m_pTB1_3); pVBL1->addWidget(m_pTB1_4); pVBL1->addWidget(m_pTB1_5); pVBL1->addStretch(); // 占位符,延伸块, 保持所有按钮靠上对齐 pVBL2->addWidget(m_pTB2_1); pVBL2->addWidget(m_pTB2_2); pVBL2->addStretch(); pVBL3->addWidget(m_pTB3_1); pVBL3->addWidget(m_pTB3_2); pVBL3->addStretch(); this->addItem((QWidget *)pGroupBox1, tr("My Friends")); this->addItem((QWidget *)pGroupBox2, tr("Stranger")); this->addItem((QWidget *)pGroupBox3, tr("Blacklist")); } QToolButton * Drawer::initToolButton(const QString &sText, const QString &sIconFile){ QToolButton *pTB = new QToolButton; // 工具按钮控件实例化,带有图标功能 pTB->setText(sText); // 设置按钮文字 pTB->setIcon(QPixmap(sIconFile)); // 设置按钮图标 pTB->setIconSize(QSize(72,72)); // 设置按钮中图标宽高 pTB->setAutoRaise(TRUE); // 设置按钮在鼠标离开后自动弹起恢复原样。 pTB->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); // 设置按钮文字在图标下方样式 return pTB; }
资源图片:
相关文章推荐
- QT学习 第一章:基本对话框--使用标准输入框
- QT学习 第一章:基本对话框--利用Qt Designer设计多个UI界面
- QT学习 第一章:基本对话框--基本对话框使用
- QT学习 第一章:基本对话框--使用进度条
- QT学习 第一章:基本对话框--利用Qt Designer设计一个对话框
- QT学习 第一章:基本对话框--动态加载UI (修改上一次内容)
- QT学习 第一章:基本对话框--使用标准输入框
- 基于Qt的类似QQ好友列表抽屉效果的实现
- QT学习 第一章:基本对话框-- HelloWorld
- QT学习 第一章:基本对话框--各类位置信息
- [QT]QT教程之实例分析[三] 实现QQ抽屉效果(QToolBox 和QToolButton)
- QT学习 第一章:基本对话框--表格的使用
- QT学习 第一章:基本对话框--各种信息框的使用
- 基于Qt的类似QQ好友列表抽屉效果的实现
- [QT]QT教程之实例分析[三] 实现QQ抽屉效果(QToolBox 和QToolButton)
- Qt基础学习(5)-----抽屉效果之QToolBox
- Qt+html+JavaScript实现类似QQ聊天界面的气泡效果
- 实现QQ抽屉效果(QToolBox 和QToolButton)
- Qt 之 QQ系统表情—实现动态显示效果
- 实现QQ的抽屉效果