QT学习 第一章:基本对话框(6)

操作系统:Fedora Linux 14

程序实现效果:

QT学习 第一章:基本对话框


创建文件夹Drawer,以下是代码(三个文件)

/** Object: Drawer 
 ** Desc:   实现QQ抽屉效果 
 ** File:   main.cpp 
 ** Compile:qmake-qt4 -project;qmake-qt4;make; 
 ** Author: LiXiujie  
 ** 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  
 ** 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.h 
 ** Class:  Drawer 实现QQ抽屉效果类 源文件 
 ** Compile:qmake-qt4 -project;qmake-qt4;make; 
 ** Author: LiXiujie  
 ** 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学习 第一章:基本对话框

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwfpdg.html