当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>Qt学习之路(7):成立一个对话框(上)</b>[VC/C++编程]

赞助商链接



  本文“<b>Qt学习之路(7):成立一个对话框(上)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

首先阐明一点,在C++ GUI Programming with Qt4, 2nd中,这一章连同今后的若干章一同,完成了一个对比完好的程序——一个模拟Excel的电子表格.不过这个程序挺大的,并且书中也没有给出完好的源代码,只是分段分段的——我不喜好这个模样,我想要看到我写出来的是什么东西,这是最主要的,而不是渐渐的过上几章的内容才能看到自己的作品.所以,我打算换一种方法,每章只给出简单的知识,但是每章都可以运行出东西来.好了,扯完了,下面开始!

从前说的主如果一些底子知识,目前我们来真正做一个东西——一个查找对话框.什么?什么叫查找对话框?唉唉,先看看我们的终究作品吧!

好了,首先新建一个工程,就叫FindDialog吧!嗯,当然还是Qt Gui Application,然后最后一步注意,Base Dialog挑选QDialog,而不是默许的QMainWindow,因为我们要学习成立对话框嘛!名字随便起,不过我就叫finddialog 啦!Ganarate form还是不要的.然后Finish就行了.

翻开finddialog.h,开始编写头文件.

#ifndef FINDDIALOG_H
#define FINDDIALOG_H

#include <QtGui/QDialog>

class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;

class FindDialog : public QDialog
{
Q_OBJECT

public:
FindDialog(QWidget *parent = 0);
~FindDialog();
signals:
void findNext(const QString &str, Qt::CaseSensitivity cs);
void findPrevious(const QString &str, Qt::CaseSensitivity cs);
private slots:
void findClicked();
void enableFindButton(const QString &text);
private:
QLabel *label;
QLineEdit *lineEdit;
QCheckBox *caseCheckBox;
QCheckBox *backwardCheckBox;
QPushButton *findButton;
QPushButton *closeButton;
};

#endif // FINDDIALOG_H

大家都是晓得C++的啊,所以什么#ifndef,#define和#endif的含义和用处就不再赘述了.

首先,声明四个用到的类.这里做的是前向声明,不然的话是编译不过的,因为编译器不知道这些类能否存在.简单来说,所谓前向声明就是奉告编译器,我要用这几个类,并且这几个类存在,你就不要耽忧它们存不存在的问题啦!

然后是我们的FindDialog,担当自QDialog.

下面是一个重要的东西:Q_OBJECT.这是一个宏.但凡定义信号槽的类都必须声明这个宏.至于为什么,我们今后再说.

然后是public的构造函数和析构函数声明.

然后是一个signal:,这是Qt的关键字——还记得前面说过的嘛?Qt扩大了C++语言,因此它有自己的关键字——这是对信号的定义,也就是说,FindDialog有两个public的信号,它可以在特定的时刻发出这两个信号,就这里来说,假如用户点击了Find按钮,并且选中了Search backward,就会发出findPrevious(),不然发出findNext().

紧接着是private slots:的定义,和前面的signal一样,这是私有的槽的定义.也就是说,FindDialog具有两个槽,可以接纳某些信号,不过这两个槽都是私有的.

为了slots的定义,我们需求拜候FindDialog的组件,因此,我们把此中的组件定义为成员变量以便拜候.恰是因为需求定义这些组件,才需求对它们的范例举行前向声明.因为我们仅仅利用的是指针,并不触及到这些类的函数,因此并不需求include它们的头文件——当然,你想直接引入头文件也可以,不过那样的话编译速度就会慢一些.

好了,头文件先说这些,下一篇再说源代码啦!

出处: http://devbean.blog.51cto.com/448512/198971


  以上是“<b>Qt学习之路(7):成立一个对话框(上)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .