QT 五大基本对话框(QFileDialog、QColorDialog、QFontDialog、QInputDialog、QMessageBox)

标准文件对话框(QFileDialog)
选择文件

getOpenFileName               // 获得用户选择的文件名
getSaveFileName               // 获得用户保存的文件名
getExistingDirectory          // 获得用户选择的已保存的目录名
getOpenFileNames              // 获得用户选择的文件名列表

//getOpenFileName解释

QString QFileDialog::getOpenFileName
(	
	QWidget* parent=0,                   // 标准文件对话框的父窗口
	const QString& caption=QString(),    // 标准文件对话框的标题名
	const QString& dir=QString(),        // 指定默认目录,若带参数,则文件将是参数
	const QString& filter=QString(),     // 过滤器,只有与过滤器匹配的才会显示,多种过滤器之间用";;"隔开
	QString * selectedFilter=0,          // 用户选择的过滤器通过此参数返回
	Options options=0                    // 选择显示文件名的格式,默认是同时显示目录与文件名
)

使用示例

QString s = QFileDialog::getOpenFileName(this,"open file dialog","/","C++ files(*.cpp);;C files(*.c);;Head files(*.h)");  // 全部文件(*.*)
QFileDialog *pQFileDlg = new QFileDialog();
pQFileDlg->setAcceptMode(QFileDialog::AcceptOpen);														// 设置模式:AcceptOpen(打开), AcceptSave(保存) 
pQFileDlg->setLabelText(QFileDialog::LookIn, "查找路径:");
pQFileDlg->setLabelText(QFileDialog::FileName, "文件名:");
pQFileDlg->setLabelText(QFileDialog::FileType, "文件类型:");
pQFileDlg->setLabelText(QFileDialog::Accept, "打开");
pQFileDlg->setLabelText(QFileDialog::Reject, "取消");
pQFileDlg->setWindowTitle("选择一个文件");																// 设置标题部分
pQFileDlg->setWindowFlag(Qt::WindowContextHelpButtonHint, false);										// 禁用帮助按钮
pQFileDlg->setWindowFlag(Qt::WindowMaximizeButtonHint, false);											// 禁用最大/小化按钮
pQFileDlg->setOption(QFileDialog::DontUseNativeDialog, true);											// 不使用默认对话框
pQFileDlg->setSizeGripEnabled(false);																	// 隐藏右下角 拖动改变大小按钮
pQFileDlg->setDirectory(QDir("*****");																	// 设置默认打开路径
QStringList filters;
filters << ".txt";
pQFileDlg->setNameFilters(filters);																		// 查找文件类型

标准颜色对话框(QColorDialog)

getColor()  // 获取用户选择的颜色值

QColor getColor
(
	const QColor& initial=Qt::white,   	// 默认白色
	QWidget* parent=0             		// 标准颜色对话框的父窗口
);

// 可以通过isValid()判断返回的颜色是否有效
// 示例,用QFrame承载颜色
void Dialog::showColor()
{
    QColor c = QColorDialog::getColor(Qt::blue);
    if(c.isValid())
    {
        colorFrame->setPalette(QPalette(c));
    }
}

标准字体对话框(QFontDialog)

getFont()// 获得用户选择字体
QFont getFont
(
	bool* ok,            		// 如果OK则返回选择字体,否则返回默认字体
	QWidget* parent=0    		// 标准字体对话框的父窗口
); 
// 示例
bool ok;
QFont f = QFontDialog::getFont(&ok);
if (ok)
{
	fontLineEdit->setFont(f);
}

标准输入对话框(QInputDialog)

1、通过标准字符串输入对话框修改QLabel控件
QString getText
(
	QWidget* parent,                           //标准输入对话框的父窗口
	const QString& title,                      //标准输入对话框的标题名
	const QString& label,                      //标准输入对话框的标签提示
	QLineEdit::EchoMode mode=QLineEdit::Normal,//指定标准输入对话框中QLineEdit控件的输入模式
	const QString& text=QString(),             //标准字符串输入对话框弹出时QLineEdit控件中默认出现的文字
	bool* ok=0,                                //如果用户点击"OK"返回true,反之,点击"Cancle"返回false
	Qt::WindowFlags flags=0                    //指明标准输入对话框的窗体标识
);

// 使用示例
bool ok;
QString text=QInputDialog::getText(this,tr("标准字符串输入对话框"), tr("请输入姓名:"), QLineEdit::Normal,nameLabel2->text(),&ok);
if (ok && !text.isEmpty())
	nameLabel2->setText(text);

文本示例

2、通过标准条目选择对话框修改QLabel控件
QString getItem
(
	QWidget* parent,          // 标准输入对话框的父窗口
	const QString& title,     // 标准输入对话框的标题名
	const QString& label,     // 标准输入对话框的标签提示
	const QStringList& items, // 指定对话框中QComboBox控件显示可选条目为一个QStringList对象
	int current=0,            // QComboBox控件默认显示的条目序号 
	bool editable=true,       // 指定QComboBox控件中显示的文字是否可编辑,true为可编辑
	bool* ok=0,               // 如果用户点击"OK"返回true,反之,点击"Cancle"返回false
	Qt::WindowFlags flags=0   // 指明标准输入对话框的窗体标识
);

// 使用示例
QStringList SexItems;
SexItems << tr("男") << tr("女");
bool ok;
QString SexItem = QInputDialog::getItem(this, tr("标准条目选择对话框"),
	tr("请选择性别:"), SexItems, 0, false, &ok);
if (ok && !SexItem.isEmpty())
	sexLabel2->setText(SexItem);

修改QComboBox

3、通过标准int类型输入对话框修改QLable控件
int getInt
(
	QWidget* parent,        // 标准输入对话框的父窗口
	const QString& title,   // 标准输入对话框的标题名
	const QString& label,   // 标准输入对话框的标签提示
	int value=0,            // 指定标准输入对话框中QSpinBox控件的默认显示值
	int min=-2147483647,    // 指定QSpinBox控件的数值范围
	int max=2147483647,
	int step=1,             // 指定QSpinBox控件的步进值
	bool* ok=0,             // 如果用户点击"OK"返回true,反之,点击"Cancle"返回false
	Qt::WindowFlags flags=0 // 指明标准输入对话框的窗口标识
); 
// 使用示例
bool ok;
int age = QInputDialog::getInt(this, tr("标准int类型输入对话框"),
	tr("请输入年龄:"), ageLabel2->text().toInt(&ok), 0, 100, 1, &ok);
if (ok)
	ageLabel2->setText(QString(tr("%1")).arg(age));

这里写图片描述

// double和int类型一样

标准信息对话框(QMessageBox)

6种消息对话框,分别为:Question、Warning、Information、Critical、About、AboutQt;其中Question、Warning、Information、Critical消息框用法基本相似

StandardButton QMessageBox::question
(
	QWidget* parent,                       		//消息框的父窗口指针
	const QString& title,                 		//消息框的标题栏
	const QString& text,                 		//消息框的文字提示信息
	StandardButtons buttons=Ok,         		//可以根据"|"选择标准按钮进行组合,有QMessageBox::Ok、QMessageBox::Close、QMessageBox::Discard等,但是出现一般要成对出现,通常Save和Discard成对出现
	StandardButton defaultButton=NoButton		//默认按钮,即消息框出现时,焦点默认处在那个按钮上
); 

StandardButton QMessageBox::information
(
	QWidget*parent,                   	//消息框的父窗口指针
	const QString& title,           	//消息框的标题栏
	const QString& text,             	//消息框的文字提示信息
	StandardButtons buttons=Ok,      	//同Question消息框的注释内容
	StandardButton defaultButton=NoButton	//同Question消息框的注释内容
);

StandardButton QMessageBox::warning
(
	QWidget* parent,                      //消息框的父窗口指针
	const QString& title,                 //消息框的标题栏
	const QString& text,                  //消息框的文字提示信息
	StandardButtons buttons=Ok,           //同Question消息框的注释内容
	StandardButton defaultButton=NoButton //同Question消息框的注释内容
); 

StandardButton QMessageBox::critical
(
	QWidget* parent,                        //消息框的父窗口指针
	const QString& title,                   //消息框的标题栏
	const QString& text,                    //消息框的文字提示信息
	StandardButtons buttons=Ok,             //同Question消息框的注释内容
	StandardButton defaultButton=NoButton   //同Question消息框的注释内容
);

void QMessageBox::about
(
	QWidget* parent,                        //消息框的父窗口指针
	const QString& title,                   //消息框的标题栏
	const QString& text                     //消息框的文字提示信息
);
// 类似Question、Warning、Information、Critical消息框示例,以Question为例
QMessageBox::Question(this,tr("Question消息框"),tr("这是Question消息框测试,欢迎您!"));

void QMessageBox::aboutQt
(
	QWidget* parent,                         //消息框的父窗口指针
	const QString& title=QString()           //消息框的标题栏
);
// 示例
QMessageBox::aboutQt(this,tr("About Qt消息框"));  

自定义消息框(Custom)

QMessageBox customMsgBox;
customMsgBox.setWindowTitle(tr("用户自定义消息框"));
QPushButton *yesBtn = customMsgBox.addButton(tr("Yes"),QMessageBox::ActionRole);
QPushButton *noBtn = customMsgBox.addButton(tr("No"),QMessageBox::ActionRole);
QPushButton *cancelBtn = customMsgBox.addButton(QMessageBox::Cancel);
customMsgBox.setText(tr("这是一个用户自定义消息框!"));
customMsgBox.setIconPixmap(QPixmap("Qt.png"));
customMsgBox.exec();
if(customMsgBox.clickedButton()==yesBtn)
	label->setText("Custom Message Box/Yes");
if(customMsgBox.clickedButton()==noBtn)
	label->setText("Custom Message Box/No");
if(customMsgBox.clickedButton()==cancelBtn)
	label->setText("Custom Message Box/Cancel");
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值