QDialog继承自QWidget。
那么,看一下QDialog都新增了哪些功能。如果你需要这些新增的功能,那么考虑使用QDialog。
Qt文档中有这样一段介绍文字:
A dialog window is a top-level window mostly used for short-term tasks and brief communications with the user QDialogs may be modal or modeless QDialogs can provide a return value, and they can have default buttons
从这段话可以看出,QDialog通常作为一个顶层窗口出现,允许用户进行一些选择,并返回用户选择的结果(比如:在一个配置对话框里,用户 *** 作完后是按下了“确定”、“应用”或“取消”)。然后应用程序就可以根据用户刚才的选择决定下一步做什么(比如:如果用户刚才按下了“确定”,那么就保存用户在配置对话框中进行的更改等)。
由于QDialog通常作为顶层窗口,所以在使用诸如QStackedLayout这样的布局类时,一般上使用QWidget这样“原始”的窗体,然后把它添加到Stacked Layout中作为其中的一个Page。
QWidget中有个方法叫SetLayout,QDialog继承了它。
QString filename;
filename = QFileDialog::getOpenFileName(NULL,"打开配置文件","/config","xml File(xml)");
qDebug()<<"filename is "<<filename;
QFileInfo fileInfo;
fileInfosetFile(filename);
qDebug()<<"file path is \""<<fileInfopath()<<"\"";
qDebug()<<"file name is "<<fileInfofileName();
qDebug()<<"fileBaseName is "<<fileInfobaseName();
qDebug()<<"fileExtension is "<<fileInfosuffix();
很简单,Qt::WindowFlags flags=Qt::Dialog;flags |=Qt::WindowCloseButtonHint;setWindowFlags(flags);
Qt 对话框按钮设置与取消:
程序中已给出解释:首先:h 文件,#ifndef MESSAGEBOX_H,#define MESSAGEBOX_H,#include <QDialog>class QLabel ;class MessageBox : public QDialog。
{Q_OBJECT,public :MessageBox (QWidget parent =0);public slots :void slotQuestion ();void slotInformation ();void slotWarning ();void slotCritical ();void slotAbout ();void slotAboutQt ();void slotCustom ();private :QLabel label ;};#endif // MESSAGEBOX_H
其次:cpp 文件#include "messageboxh"#include <QtGui>MessageBox ::MessageBox (QWidget parent ): QDialog (parent ) setWindowTitle (trUtf8("\345\257\271\350\257\235\346\241\206\345\255\246\344\271\240\347\244\272\344\276\213"));label = new QLabel ;
case QMessageBox ::Cancel :label ->setText (" Warning button / Cancel ");break;default :break ;}return ;}void MessageBox ::slotQuestion (){}void MessageBox ::slotInformation (){}void MessageBox ::slotCritical (){ }void MessageBox ::slotAbout (){}void MessageBox ::slotAboutQt (),后面的函数代码可以参照前面的,在此就不介绍。
很简单,Qt::WindowFlags flags=Qt::Dialog;flags |=Qt::WindowCloseButtonHint;setWindowFlags(flags);
Qt 对话框按钮设置与取消:
程序中已给出解释:首先:h 文件,#ifndef MESSAGEBOX_H,#define MESSAGEBOX_H,#include <QDialog>class QLabel ;class MessageBox : public QDialog。
{Q_OBJECT,public :MessageBox (QWidget parent =0);public slots :void slotQuestion ();void slotInformation ();void slotWarning ();void slotCritical ();void slotAbout ();void slotAboutQt ();void slotCustom ();private :QLabel label ;};#endif // MESSAGEBOX_H
其次:cpp 文件#include "messageboxh"#include <QtGui>MessageBox ::MessageBox (QWidget parent ): QDialog (parent ) setWindowTitle (trUtf8("\345\257\271\350\257\235\346\241\206\345\255\246\344\271\240\347\244\272\344\276\213"));label = new QLabel ;
case QMessageBox ::Cancel :label ->setText (" Warning button / Cancel ");break;default :break ;}return ;}void MessageBox ::slotQuestion (){}void MessageBox ::slotInformation (){}void MessageBox ::slotCritical (){ }void MessageBox ::slotAbout (){}void MessageBox ::slotAboutQt (),后面的函数代码可以参照前面的,在此就不介绍。
QDialog继承自QWidget。\x0d\那么,看一下QDialog都新增了哪些功能。如果你需要这些新增的功能,那么考虑使用QDialog。\x0d\Qt文档中有这样一段介绍文字:\x0d\A dialog window is a top-level window mostly used for short-term tasks and brief communications with the user QDialogs may be modal or modeless QDialogs can provide a return value, and they can have default buttons \x0d\从这段话可以看出,QDialog通常作为一个顶层窗口出现,允许用户进行一些选择,并返回用户选择的结果(比如:在一个配置对话框里,用户 *** 作完后是按下了“确定”、“应用”或“取消”)。然后应用程序就可以根据用户刚才的选择决定下一步做什么(比如:如果用户刚才按下了“确定”,那么就保存用户在配置对话框中进行的更改等)。\x0d\\x0d\由于QDialog通常作为顶层窗口,所以在使用诸如QStackedLayout这样的布局类时,一般上使用QWidget这样“原始”的窗体,然后把它添加到Stacked Layout中作为其中的一个Page。\x0d\\x0d\QWidget中有个方法叫SetLayout,QDialog继承了它。
if(fileDialog->exec() == QDialog::Accepted) {
QString path = fileDialog->selectedFiles()[0];
}
以上就是关于qt中widget与dialog如何选择全部的内容,包括:qt中widget与dialog如何选择、qt如何得到对话框文件路径、QT编程的QDialog对话框右上角的问号按钮如何取消呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)