QT学习 第一章:基本对话框--实现QQ抽屉效果

操作系统:Fedora Linux 14

程序实现效果:


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

<textarea cols="50" rows="15" name="code" class="cpp">/** 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 &lt;QApplication&gt; // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。 #include &quot;Drawer.h&quot; // 自定义类头文件 int main(int argc, char *argv[]){ QApplication app(argc, argv); Drawer *drawer = new Drawer(); drawer-&gt;show(); return app.exec(); } </textarea>

<textarea cols="50" rows="15" name="code" class="cpp">/** 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 &lt;QtGui&gt; 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 &amp;sText, const QString &amp;sIconFile); private slots: }; #endif // DRAWER_H </textarea>

 

<textarea cols="50" rows="15" name="code" class="cpp">/** 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 &quot;Drawer.h&quot; Drawer::Drawer(QWidget *parent) : QToolBox(parent){ setWindowTitle(tr(&quot;My QQ&quot;)); // 设置窗口标题 m_pTB1_1 = initToolButton(tr(&quot;beibei&quot;), QString(&quot;images/bb.png&quot;)); // 工具按钮控件实例化并初始化 m_pTB1_2 = initToolButton(tr(&quot;jingjing&quot;), QString(&quot;images/jj.png&quot;)); m_pTB1_3 = initToolButton(tr(&quot;huanhuan&quot;), QString(&quot;images/hh.png&quot;)); m_pTB1_4 = initToolButton(tr(&quot;yingying&quot;), QString(&quot;images/yy.png&quot;)); m_pTB1_5 = initToolButton(tr(&quot;nini&quot;), QString(&quot;images/nn.png&quot;)); m_pTB2_1 = initToolButton(tr(&quot;pizicai&quot;), QString(&quot;images/1.png&quot;)); m_pTB2_2 = initToolButton(tr(&quot;feiyang&quot;), QString(&quot;images/2.png&quot;)); m_pTB3_1 = initToolButton(tr(&quot;QQ&quot;), QString(&quot;images/3.png&quot;)); m_pTB3_2 = initToolButton(tr(&quot;angel&quot;), QString(&quot;images/4.png&quot;)); 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-&gt;setMargin(10); // 布局控件四周边距为10像素。 pVBL1-&gt;setAlignment(Qt::AlignHCenter); // 布局中元素对齐方式为水平居中 pVBL2-&gt;setMargin(10); pVBL2-&gt;setAlignment(Qt::AlignHCenter); pVBL3-&gt;setMargin(10); pVBL3-&gt;setAlignment(Qt::AlignHCenter); pVBL1-&gt;addWidget(m_pTB1_1); // 按钮控件加入布局中 pVBL1-&gt;addWidget(m_pTB1_2); pVBL1-&gt;addWidget(m_pTB1_3); pVBL1-&gt;addWidget(m_pTB1_4); pVBL1-&gt;addWidget(m_pTB1_5); pVBL1-&gt;addStretch(); // 占位符,延伸块, 保持所有按钮靠上对齐 pVBL2-&gt;addWidget(m_pTB2_1); pVBL2-&gt;addWidget(m_pTB2_2); pVBL2-&gt;addStretch(); pVBL3-&gt;addWidget(m_pTB3_1); pVBL3-&gt;addWidget(m_pTB3_2); pVBL3-&gt;addStretch(); this-&gt;addItem((QWidget *)pGroupBox1, tr(&quot;My Friends&quot;)); this-&gt;addItem((QWidget *)pGroupBox2, tr(&quot;Stranger&quot;)); this-&gt;addItem((QWidget *)pGroupBox3, tr(&quot;Blacklist&quot;)); } QToolButton * Drawer::initToolButton(const QString &amp;sText, const QString &amp;sIconFile){ QToolButton *pTB = new QToolButton; // 工具按钮控件实例化,带有图标功能 pTB-&gt;setText(sText); // 设置按钮文字 pTB-&gt;setIcon(QPixmap(sIconFile)); // 设置按钮图标 pTB-&gt;setIconSize(QSize(72,72)); // 设置按钮中图标宽高 pTB-&gt;setAutoRaise(TRUE); // 设置按钮在鼠标离开后自动弹起恢复原样。 pTB-&gt;setToolButtonStyle(Qt::ToolButtonTextUnderIcon); // 设置按钮文字在图标下方样式 return pTB; } </textarea>

 

资源图片:

 

你可能感兴趣的:(Date,qq,object,File,qt,makefile)