一般对话框和QWidget看起来差别不大,不过还是有不同点的;
1.模态对话框,在模态对话框中,exec有自己的消息循环;并且把app的消息循环接管了;也就是当显示该对话框的时候不能去点击其它窗口部件;
2.如果Dialog通过exec来显示,那么可以通过accept或者reject来关闭窗口
如果Dialog通过show来显示,那么可以通过close来关闭窗口,这个和QWidget是一样的;
有许多的特殊dialog;打印预览,文件选择,messagebox, 颜色选择,字体选择,打印;//这些对话框都是系统的对话框
3.相同之处包括都可以在部件上面用QPainter画;
mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
class MyDialog : public QDialog
{
Q_OBJECT
public:
explicit MyDialog(QWidget *parent = 0);
void paintEvent(QPaintEvent *);
QString _strDir;//打开的目录,如果是空的,那么打开当前项目所在文件夹
signals:
public slots:
void slotButtonClick();
};
#endif // MYDIALOG_H
mydialog.cpp
#include "mydialog.h"
#include <QPushButton>
#include <QDebug>
#include <QFileDi