qt中widget与dialog如何选择

qt中widget与dialog如何选择,第1张

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对话框右上角的问号按钮如何取消呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10149039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存