day3 QT对话框

目录

QDialog

标准对话框(Standard Dialogs):

内置对话框(Built-in Dialogs):

自定义对话框(Custom Dialogs)

 示例

myqdialog.h

 widget.h

 myqdialog.cpp

 widget.cpp


QDialog

  • QDialog是QWidget的子类,用于创建对话框。
  • 对话框是一种特殊类型的窗口,通常用于与用户进行交互,提供额外的选项或接收用户的输入。
  • QDialog提供了一些常用的对话框样式,例如消息框、文件选择框、颜色选择框等。
  • 对话框可以自定义,可以根据需要添加自己的控件和逻辑。

标准对话框(Standard Dialogs):

  • 标准对话框是Qt提供的一组常用对话框,用于执行常见的操作,如打开文件、保存文件、选择颜色、选择字体等。
  • 这些对话框具有标准化的用户界面,可以直接使用,无需自定义。

一些常见的标准对话框包括:

  • 文件对话框(QFileDialog):用于选择文件或文件夹。
  • 字体对话框(QFontDialog):用于选择字体样式和大小。
  • 颜色对话框(QColorDialog):用于选择颜色。

内置对话框(Built-in Dialogs):

  • 内置对话框是一些特定功能的对话框,提供了更高级的交互操作,如进度对话框、输入对话框、消息对话框等。
  • 这些对话框具有预定义的样式和功能,可以根据需要进行适当的配置。

一些常见的内置对话框包括:

  • 进度对话框(QProgressDialog):显示任务的进度,并提供取消按钮。
  • 输入对话框(QInputDialog):用于获取用户输入的对话框,可以输入文本、数字、密码等。
  • 消息对话框(QMessageBox):显示一条消息并等待用户操作的对话框。

自定义对话框(Custom Dialogs)

  • 自定义对话框是根据特定需求创建的定制化对话框。
  • 开发者可以通过继承QDialog或其他适合的类,根据需要定义对话框的布局、控件和交互逻辑。

自定义对话框的创建通常涉及以下几个步骤:

  • 创建一个继承自QDialog的自定义对话框类。
  • 在自定义对话框类中定义布局、添加控件和信号槽等内容。
  • 在应用程序中创建自定义对话框对象,并显示对话框。

 示例

myqdialog.h

#ifndef MYQDIALOG_H
#define MYQDIALOG_H

#include <QDialog>
#include <QLineEdit>
#include <QPushButton>
#include <QCheckBox>

class myQDialog : public QDialog
{
    Q_OBJECT
public:
    myQDialog();

public slots:
    void ok_pushed()
    {
        //ok按下stat为true
        stat = true;
        close();
    }


    void setpass(bool flag)
    {
        if(!flag)
            le1->setEchoMode(QLineEdit::Password);
        else
            le1->setEchoMode(QLineEdit::Normal);
    }


public:
    static int getstat()
    {
        myQDialog a;
        //a.setFixedSize(100, 100);
        a.exec();

        return a.stat;
    }


private:
    QLineEdit *le, *le1;
    QPushButton *pb;
    QCheckBox *ck;
    bool checked;

    int stat;  //标志,标志对话框是按下什么结束的

};

#endif // MYQDIALOG_H

 widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

 myqdialog.cpp

#include "myqdialog.h"
#include <QFormLayout>

myQDialog::myQDialog()
{
    le = new QLineEdit;
    le1 = new QLineEdit;
    pb = new QPushButton("登录");
    ck = new QCheckBox;


    QFormLayout *fbox = new QFormLayout;
    fbox->addRow("user", le);
    fbox->addRow("pawd", le1);
    fbox->addRow("show password", ck);
    fbox->addRow("", pb);

    setLayout(fbox);

    le1->setEchoMode(QLineEdit::Password); // 设置密码框为密码模式

    stat = false;

    connect(pb, SIGNAL(clicked(bool)), this, SLOT(ok_pushed()));
    connect(ck, SIGNAL(clicked(bool)), this, SLOT(setpass(bool)));
   }

 widget.cpp

#include "widget.h"
#include <QWidget>
#include <QDialog>
#include "myqdialog.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
#if 0
    myQDialog a;
    a.setFixedSize(100, 100);
    a.exec();

    if(a.stat)
        exit(0);

#endif

    int s = myQDialog::getstat();

    if (!s)
        exit(0);
}

Widget::~Widget()
{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值