当前位置:   article > 正文

day3 QT对话框

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

  1. #ifndef MYQDIALOG_H
  2. #define MYQDIALOG_H
  3. #include <QDialog>
  4. #include <QLineEdit>
  5. #include <QPushButton>
  6. #include <QCheckBox>
  7. class myQDialog : public QDialog
  8. {
  9. Q_OBJECT
  10. public:
  11. myQDialog();
  12. public slots:
  13. void ok_pushed()
  14. {
  15. //ok按下stat为true
  16. stat = true;
  17. close();
  18. }
  19. void setpass(bool flag)
  20. {
  21. if(!flag)
  22. le1->setEchoMode(QLineEdit::Password);
  23. else
  24. le1->setEchoMode(QLineEdit::Normal);
  25. }
  26. public:
  27. static int getstat()
  28. {
  29. myQDialog a;
  30. //a.setFixedSize(100, 100);
  31. a.exec();
  32. return a.stat;
  33. }
  34. private:
  35. QLineEdit *le, *le1;
  36. QPushButton *pb;
  37. QCheckBox *ck;
  38. bool checked;
  39. int stat; //标志,标志对话框是按下什么结束的
  40. };
  41. #endif // MYQDIALOG_H

 widget.h

  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QWidget>
  4. class Widget : public QWidget
  5. {
  6. Q_OBJECT
  7. public:
  8. Widget(QWidget *parent = 0);
  9. ~Widget();
  10. };
  11. #endif // WIDGET_H

 myqdialog.cpp

  1. #include "myqdialog.h"
  2. #include <QFormLayout>
  3. myQDialog::myQDialog()
  4. {
  5. le = new QLineEdit;
  6. le1 = new QLineEdit;
  7. pb = new QPushButton("登录");
  8. ck = new QCheckBox;
  9. QFormLayout *fbox = new QFormLayout;
  10. fbox->addRow("user", le);
  11. fbox->addRow("pawd", le1);
  12. fbox->addRow("show password", ck);
  13. fbox->addRow("", pb);
  14. setLayout(fbox);
  15. le1->setEchoMode(QLineEdit::Password); // 设置密码框为密码模式
  16. stat = false;
  17. connect(pb, SIGNAL(clicked(bool)), this, SLOT(ok_pushed()));
  18. connect(ck, SIGNAL(clicked(bool)), this, SLOT(setpass(bool)));
  19. }

 widget.cpp

  1. #include "widget.h"
  2. #include <QWidget>
  3. #include <QDialog>
  4. #include "myqdialog.h"
  5. Widget::Widget(QWidget *parent)
  6. : QWidget(parent)
  7. {
  8. #if 0
  9. myQDialog a;
  10. a.setFixedSize(100, 100);
  11. a.exec();
  12. if(a.stat)
  13. exit(0);
  14. #endif
  15. int s = myQDialog::getstat();
  16. if (!s)
  17. exit(0);
  18. }
  19. Widget::~Widget()
  20. {
  21. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/613518
推荐阅读
相关标签
  

闽ICP备14008679号