qt学习第四课:子类化窗口

本篇博客详细介绍了在QT中如何子类化窗口,并以一个查找对话框为例进行教学。通过子类化QDialog,实现了信号处理、按钮状态改变及窗口布局等关键功能,最终在main文件中成功展示了一个功能完整的窗口效果。
摘要由CSDN通过智能技术生成

在本节课中,学习了如何子类化一个窗口,在下面就以经常用到的查找对话框为例:

具体的运行结果如下:



这个对话框就是一个基于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:");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值