qt对话框功能介绍

1、颜色对话框

	//方式一
	QColor color = QColorDialog::getColor(Qt::red, this, QString::fromLocal8Bit("颜色对话框"),QColorDialog::ShowAlphaChannel);
	qDebug() <<"color:" <<color;

	//方式二
	QColorDialog dialog(Qt::red, this); // 创建对象
	dialog.setOption(QColorDialog::ShowAlphaChannel);   // 显示 alpha 选项
	dialog.exec();  // 以模态方式运行对话框
	QColor color = dialog.currentColor();   // 获取颜色对话框当前颜色
	qDebug() << "color:" << color;    // 输出颜色信息

2、文件对话框

	//注意:(* png * jpg)中间有空格
	QString fileName = QFileDialog::getOpenFileName(this, QString::fromLocal8Bit("文件对话框"), "C:", QString::fromLocal8Bit("图片文件(* png * jpg);;文本文件(* txt)"));
	qDebug() << "fileName:" << fileName;

	QStringList fileNames = QFileDialog::getOpenFileNames(this, QString::fromLocal8Bit("文件对话框"), "C:", QString::fromLocal8Bit("图片文件(* png * jpg);;文本文件(* txt)"));
	qDebug() << "fileNames:" << fileNames;

	QString saveFileName = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("Save File"), QString::fromLocal8Bit("Images (*.png *.xpm *.jpg)"));
	qDebug() << "saveFileName:" << saveFileName;

	QString dir = QFileDialog::getExistingDirectory(this, QString::fromLocal8Bit("Open Directory"), "C:", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
	qDebug() << "dir:" << dir;

3、字体对话框

	bool ok;
	QFont font = QFontDialog::getFont(&ok, this);
	// 如果单击 Cancel 按钮,那么更改字体
	if (ok)
		ui.pushButton_font->setFont(font);
	else
		qDebug() << QString::fromLocal8Bit("没有选择字体!");

4、输入对话框

	bool ok;

	// 获取字符串
	QString string = QInputDialog::getText(this, QString::fromLocal8Bit("输入字符串对话框"), QString::fromLocal8Bit("请输入用户名:"), QLineEdit::Normal, QString::fromLocal8Bit("admin"), &ok);
	if (ok)
		qDebug() << "string:" << string;

	// 获取整数
	int value1 = QInputDialog::getInt(this, QString::fromLocal8Bit("输入整数对话框"), QString::fromLocal8Bit("请输入 -1000到1000之间的数值"), 100, -1000, 1000, 10, &ok);
	if (ok)
		qDebug() << "value1:" << value1;

	// 获取浮点数
	double value2 = QInputDialog::getDouble(this, QString::fromLocal8Bit("输入浮点数对话框"), QString::fromLocal8Bit("请输入-1000到1000之间的数值"), 0.00, -1000, 1000, 2, &ok);
	if (ok) qDebug() << "value2:" << value2;

	// 获取条目
	const QStringList items = { "aa", "bb" };
	QString item = QInputDialog::getItem(this, QString::fromLocal8Bit("输入条目对话框"), QString::fromLocal8Bit("请选择或输入一个条目"), items, 0, true, &ok);
	if (ok) qDebug() << "item:" << item;

5、消息对话框

	// 问题对话框
	int ret1 = QMessageBox::question(this, QString::fromLocal8Bit("问题对话框"), QString::fromLocal8Bit("问题对话框"), QMessageBox::Yes, QMessageBox::No);
	if (ret1 == QMessageBox::Yes)
		qDebug() << QString::fromLocal8Bit("问题!");

	// 提示对话框
	int ret2 = QMessageBox::information(this, QString::fromLocal8Bit("提示对话框"), QString::fromLocal8Bit("提示对话框"), QMessageBox::Ok);
	if (ret2 == QMessageBox::Ok)
		qDebug() << QString::fromLocal8Bit("提示!");

	// 警告对话框
	int ret3 = QMessageBox::warning(this, QString::fromLocal8Bit("警告对话框"), QString::fromLocal8Bit("警告对话框"), QMessageBox::Abort);
	if (ret3 == QMessageBox::Abort)
		qDebug() << QString::fromLocal8Bit("警告!");

	// 错误对话框
	int ret4 = QMessageBox::critical(this, QString::fromLocal8Bit("严重错误对话框"), QString::fromLocal8Bit("严重错误对话框"), QMessageBox::YesAll);
	if (ret4 == QMessageBox::YesAll)
		qDebug() << QString::fromLocal8Bit("错误");

	// 关于对话框
	QMessageBox::about(this, QString::fromLocal8Bit("关于对话框"), QString::fromLocal8Bit("关于对话框"));

6、进度对话框

	QProgressDialog dialog(QString::fromLocal8Bit("文件进度"), QString::fromLocal8Bit("取消"), 0, 50000, this);
	dialog.setWindowTitle(QString::fromLocal8Bit("进度对话框"));
	dialog.setWindowModality(Qt::WindowModal);  // 将对话框设置为模态
	dialog.show();

	for (int i = 0; i < 50000; i++)
	{
		dialog.setValue(i);
		QCoreApplication::processEvents();// 避免界面冻结
		if (dialog.wasCanceled()) // 按下取消按钮则中断
			break;
	}

	dialog.setValue(50000);
	qDebug() << QString::fromLocal8Bit("结束!");

7、错误信息对话框

	QErrorMessage *errordlg = new QErrorMessage(this);;

	errordlg->setWindowTitle(QString::fromLocal8Bit("错误信息对话框"));
	errordlg->showMessage(QString::fromLocal8Bit("这里是出错信息!"));

8、向导对话框

QWizardPage * createPage1()  // 向导页面1
{
	QWizardPage *page = new QWizardPage;
	page->setTitle(QString::fromLocal8Bit("介绍"));
	return page;
}

QWizardPage * createPage2()  // 向导页面2
{
	QWizardPage *page = new QWizardPage;
	page->setTitle(QString::fromLocal8Bit("用户选择信息"));
	return page;
}

QWizardPage * createPage3()  // 向导页面3
{
	QWizardPage *page = new QWizardPage;
	page->setTitle(QString::fromLocal8Bit("结束"));
	return page;
}
void Dialogs::slotBtnWizard()
{
	QWizard wizard(this);
	wizard.setWindowTitle(QString::fromLocal8Bit("向导对话框"));
	wizard.addPage(createPage1());     // 添加向导页面
	wizard.addPage(createPage2());
	wizard.addPage(createPage3());
	wizard.exec();
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值