"finddialog.h" code:
/*避免多重包含*/ /*QDialog继承了QWidget*/ /*前置声明,告诉编译器类的存在,使编译更快些*/ /*定义FindDialog类作为QDialog的子类*/ /*拥有信号和槽的类必须有Q_OBJECT宏*/ /*parent参数指定了父窗口部件,默认情况下是个空指针,意味着它没有父窗口部件*/ /**声明公共信号 /**声明两个信号,这里&str是引用 /*声明私有槽,与signals一样是个宏*/ /*通过指针指向这些控件,可以在实现信号槽的时候更好的访问它们*/ |
"finddialog.cpp" code:
/*QtGui中包含着QtCore和QtGui模块的所有类的定义,包含这个头文件就不用逐个包含所有类了*/ /*将parent参数传递给父类的构造函数*/ /*创建控件,tr()可使字符自动转换成其他语言,有tr()是个好习惯 /*设置友好控件,即当用户按下"Alt + w"时,焦点会转移到该标签的友好控件*/ /*将findButton设为禁用,即灰色按钮*/ /*当lineEdit(文本框)内容发生改变时,私有槽enableFindButton(const QString &)会被调用*/ /*当findButton被点击,私有槽findClicked()会被调用*/ /*当closeButton被点击,对话框关闭,槽close()继承自QWidget,默认的功能是将控件隐藏(并非删除)*/ /*创建布局管理器,QHBoxLayout为横向,QVBoxLayout为纵向*/ /*给布局管理器添加控件*/ /*添加一个间隔器(伸缩器或弹性器,不管怎么叫,反正用它耗尽空白区域,跟弹簧一样*/ /*设置对话框的主布局*/ /*设置对话框标题*/ /*设置对话框的大小,sizeHint()返回对话框的理想尺寸*/ /*当用户点击Find按钮,findClicked()槽被调用*/ /*Qt::CaseSensitivity枚举类型,如果caseCheckBox被选择,cs为CaseSensitive(1)否则为CaseInsensitive(0)*/ /**发射findPrevious()或findNext()信号,emit关键字会被转成标准c++ /*当文本框内容改变时,enableFindButton槽被调用*/ /*如果文本框非空,则findButton可用*/ |
"main.cpp" code:
#include <QApplication> /*创建一个QApplication对象管理整个程序资源,Qt支持命令行参数,通过构造函数传递argc和argv参数给程序使用*/ /*将dialog设置成可见的,控件生成后一般是隐藏的*/ /*将程序的控制权交给Qt,进入事件循环*/ |