对话框
文件对话框
添加头文件#include<QFileDialog>
QfileDialog类有很多方法,可以静态使用,也可以实例化使用。
常用的有以下这些:
QFileDialog::getOpenFileName();选择打开文件路径
QFileDialog::getSaveFileName();选择保存路径
QFileDialog::getExistingDirectory();选择文件夹
返回的是整个路径。
QFileDialog::selectFile();
QFileDialog::setWindowTitle();
例如:
QFileDialog::getSaveFileName();
参数为:
父句柄,一般为0。
标题:字符串
路径:可以为空,打开的对话框定为到最后一个/,把最后的字符串作为文件名。
过滤器:"Image Files(*.bmp *.jpg)"
01.
fileName =QFileDialog::getSaveFileName(
this
, tr(
"title"
),”/root/a.bmp”,
"Image Files (*.bmp)"
);
02.
if
(!fileName.isNull())
03.
{
04.
QString path =fileName;
05.
QFile f(path);
06.
f.open(QIODevice::ReadWrite);
//打开文件
07.
f.write(bmp);
08.
f.close();
09.
num++;
10.
}
01.
void
Form1::opendialog()
02.
{
03.
QString file name=QFileDialog::getOpenFileName(
04.
0
,
05.
"open the file"
,
06.
QDir::home().dirName(),
07.
"file(*.bmp *.jpg)"
,
08.
0
,
09.
0
);
10.
ui->label->setText(filename);
11.
}
输入框QinputDialog
头文件
#include<QInputDialog>
主要由四种方法:getText(),getInt(),getDouble()和getItem()
01.
voidForm1::inputdialog()
02.
{
03.
QString text;
04.
bool ok;
05.
text=QInputDialog::getText(
06.
this
,
07.
tr(
"UserName"
),
08.
tr(
"Please input newname"
),
09.
QLineEdit::Normal,
10.
QDir::home().dirName(),
11.
&ok);
12.
if
(ok&&!text.isEmpty())
13.
{
14.
ui->label->setText(text);
15.
}
16.
}
颜色框
#include<QColorDialog>
01.
void
Form1::colordialog()
02.
{
03.
QColor color=QColorDialog::getColor(Qt::green,
this
);
04.
if
(color.isValid())
05.
{
06.
ui->label->setText(color.name());
07.
ui->label->setPalette(QPalette(color));
08.
ui->label->setAutoFillBackground(
true
);
09.
}
10.
}
第1句创建标准颜色选择对话框。
第2句判断颜色是否有效。
第3句设置colorLabel显示的文本是用户从标准颜色对话框中选择的颜色的名字。
第4句通过setPalette()方法设置colorLabel的调色板信息。setPalette()方法经常用于此
种场合。
第5句也很重要,setAutoFillBackground()方法用于设置窗体能够自动填充背景。
字体框
01.
void
Form1::fontdialog()
02.
{
03.
bool ok;
04.
QFont font = QFontDialog::getFont(&ok,QFont(
"Times"
,
12
),
this
);
05.
if
(ok)
06.
{
07.
ui->label->setFont(font);
08.
}
09.
else
10.
{
11.
12.
}
13.
14.
}
信息提示框
在程序开发中,经常会遇到各种各样的消息框来给用户一些提示或提醒,Qt提供了QMessageBox类来实现此项功能。在使用QMessageBox类之前,应加入其头文件声明:
#include<QMessageBox>
QT提供了Question消息框、Information消息框、Warning消息框、Critical消息框、About消息框、AboutQt(关于Qt)消息框以及Custom(自定义)消息框等。
Question消息框、Information消息框、Warning消息框和Critical消息框的用法大同小异,这些消息框一般都包含一条提示信息、一个图标以及若干个按钮,它们的作用都是给用户提供一些提醒或一些简单的询问。
消息框的返回值是一个QMessageBox::StandardButton,这是一个枚举量,它包含了QMessageBox类默认提供的按钮提示信息,如OK、Help、Yes、No、Abort、Retry、Ignore等。
例如:
参数是(this,标题,内容,按钮列表,选择默认把焦点移动哪个按钮上)
01.
void
Form1::messdialog()
02.
{
03.
switch
(QMessageBox::question(
04.
this
,
05.
"titile"
,
06.
"detail"
,
07.
QMessageBox::Ok|QMessageBox::No,
08.
QMessageBox::Ok)
09.
)
10.
{
11.
case
QMessageBox::Ok:
12.
ui->label->setText(
"ok"
);
13.
break
;
14.
case
QMessageBox::No:
15.
ui->label->setText(
"no"
);
16.
break
;
17.
default
:
18.
19.
break
;
20.
}
21.
}
不带标题栏
QmessageBox mgb;
mgb.setWIndowFlags(Qt::FrameLessTopHint);
mgb.exec();