QT学习笔记2:创建对话框

1. 手动创建对话框

1) finddialog.h头文件:

#ifndef FINDDIALOG_H
#define FINDDIALOG_H

#include <QDialog.h>
#include <qlabel.h>
#include <qcheckbox.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QMessageBox>

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

class FindDialog:public QDialog
{
    //对于所有定义了信号和槽的类,在类定义开始处的Q_OBJECT宏都是必需的
    Q_OBJECT
public:
    FindDialog(QWidget *parent = 0);
public:
    void myfindNext(const QString &str, Qt::CaseSensitivity cs);
    void myfindPrevious(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


2)finddialog.cpp源文件

#include "finddialog.h"

FindDialog::FindDialog(QWidget *parent) :
    QDialog(parent)
{
    //在字符串周围的tr()函数调用是把它们翻译成其他语言的标记(这是一个好习惯)
    label = new QLabel( tr( "Find &what" ) );
    lineEdit = new QLineEdit;
    //标签伙伴:一个窗口部件,当你按下Alt+w时,焦点就会移动到这个行编辑器(该标签的伙伴)上
    label->setBuddy( lineEdit );

    caseCheckBox = new QCheckBox( tr( "Match &case" ) );
    backwardCheckBox = new QCheckBox( tr( "Search &backward" ) );

    findButton = new QPushButton( tr( "&Find" ) );
    findButton->setDefault( true ); //默认按钮
    findButton->setEnabled( false );

    closeButton = new QPushButton( tr( "Close" ) );

    //当文本改变时候,使find按钮有效
    connect( lineEdit, SIGNAL( textChanged( const QString & ) ),
             this, SLOT( enableFindButton( const QString & ) ) );
    //当find按钮按下时候,处罚
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值