本文主要是介绍qt学习第四课:子类化窗口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在本节课中,学习了如何子类化一个窗口,在下面就以经常用到的查找对话框为例:
具体的运行结果如下:
这个对话框就是一个基于QDialog的子类。
具体代码如下:
#ifndef CFILEDIALOG_H
#define CFILEDIALOG_H
#include<QDialog>
#include<QLabel>
#include<QCheckBox>
#include<QPushButton>
#include<QLineEdit>class CFindDialog:public QDialog
{Q_OBJECT
public://构造函数CFindDialog(QWidget * parent = 0);//当用户单击Find按钮对话框发出的两个信号
signals:void findNext(const QString &str , Qt::CaseSensitivity cs);void findPrev(const QString& str , Qt::CaseSensitivity cs);//槽的声明
private slots:void findClicked();//当按了查找按钮的时候响应的槽void enableFindButton(const QString& text); //当编辑框中内容改变的时候响应的槽//还应该为查找添加两个槽// void findNexttext(const QString& text)...// void findNexttext(const QString& text)...//定义了各种控件的指针
private:QLabel* label ;QLineEdit* lineEdit;QCheckBox* caseCheckBox;QCheckBox* backwardCheckBox;QPushButton* findButton;QPushButton* closeButton;};#endif // CFILEDIALOG_H
在类的头文件中,完成了对各种控件的定义,以及信号和槽的定义等。
下面是在cpp文件中的实现代码如下:
#include "cfinddialog.h"
#include<QtGui>
#include<QHBoxLayout>
#include<QVBoxLayout>
#include<QGridLayout>
CFindDialog::CFindDialog(QWidget * parent):QDialog(parent)
{
//所有控件的初始化
label = new QLabel("Find &what:");
这篇关于qt学习第四课:子类化窗口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!