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

这篇博客介绍了在QT中创建对话框的方法,包括手动创建和使用QT Creator快速设计。详细讨论了信号和槽的概念,如一个信号可以连接多个槽,连接可以被移除等。同时,展示了如何改变对话框的形状,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

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、付费专栏及课程。

余额充值