gta房产网站建设中,怎么做整人点不完的网站,兰州seo快速优化报价,做公司网站麻烦吗目录
1 概述
2 QFileDialog对话框
1.选择打开一个文件
2.选择打开多个文件
3#xff0e;选择已有目录
4#xff0e;选择保存文件名
3 QColorDialog对话框
4 QFontDialog对话框
5 QInputDialog标准输入对话框
1.输入文字
2#xff0e;输入整数
3#xff0e;输入…目录
1 概述
2 QFileDialog对话框
1.选择打开一个文件
2.选择打开多个文件
3选择已有目录
4选择保存文件名
3 QColorDialog对话框
4 QFontDialog对话框
5 QInputDialog标准输入对话框
1.输入文字
2输入整数
3输入浮点数
4.下拉列表选择输入
6 QMessageBox消息对话框
1.函数原型
2.简单信息提示
3.确认选择对话框
1 概述
Qt为应用程序设计提供了一些常用的标准对话框如打开文件对话框、选择颜色对话框、信 息提示和确认选择对话框、标准输入对话框等用户无需再自己设计这些常用的对话框这样可 以减少程序设计工作量。 Qt预定义的各标准对话框的类及其主要静态函数的功能见 表6-1由于输入参数一般较多省略了函数的输入参数只列出了函数的返回值类型。 实例samp6_1演示使用这些对话框程序运行界面如图6-1所示。下方的文本框显示打开文件的文件名或一些提示信息某些对话框的输入结果可应用于文本框的属性设置如字体和颜色。 图6-1 实例samp6_1运行界面 2 QFileDialog对话框
1.选择打开一个文件
若要打开一个文件可调用静态函数QFileDialog::getOpenFileName(),“打开一个文件”按钮的响应代码如下 void Dialog::on_btnOpen_clicked()
{ //选择单个文件QString curPathQDir::currentPath();//获取系统当前目录
// QString curPathQCoreApplication::applicationDirPath(); //获取应用程序的路径QString dlgTitle选择一个文件; //对话框标题QString filter文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*); //文件过滤器QString aFileNameQFileDialog::getOpenFileName(this,dlgTitle,curPath,filter);if (!aFileName.isEmpty())ui-plainTextEdit-appendPlainText(aFileName);
} 函数原型 QString QFileDialog::getOpenFileName
(
QWidget* parent 0, //标准文件对话框的父窗口
const QString caption QString(), //标准文件对话框的标题名
const QString dir QString(), //注1
const QString filter QString(), //注2
QString * selectedFilter0, //用户选择的过滤器通过此参数返回
Options options0 //选择显示文件名的格式默认是同时显示目录与文件名
) 注1指定了默认的目录若此参数带有文件名则文件将是默认选中的文件。 注2此参数对文件类型进行过滤只有与过滤器匹配的文件类型才显示可以同时指定多种过滤方式供用户选择多种过滤器之间使用;;隔开。 QFileDialog::getOpenFileName()函数需要传递3个字符串型参数分别如下。 对话框标题这里设置为选择一个文件。 初始化目录打开对话框时的初始目录这里用QDir::cunentPath()获取应用程序当前目录。 文件过滤器设置选择不同后缀的文件可以设置多组文件如 QString filter 文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*); 每组文件之间用两个分号隔开同一组内不同后缀之间用空格隔开。 QFileDialoggetOpenFileName()函数返回的是选择文件的带路径的完整文件名如果在对话框里取消选择则返回字符串为空。 2.选择打开多个文件
若要选择打开多个文件可使用静态函数QFileDialoggetOpenFileNames()“打开多个文件”按钮的响应代码如下 void Dialog::on_btnOpenMulti_clicked()
{ //选择多个文件
// QString curPathQCoreApplication::applicationDirPath(); //获取应用程序的路径QString curPathQDir::currentPath();//获取系统当前目录QString dlgTitle选择多个文件; //对话框标题QString filter文本文件(*.txt);;图片文件(*.jpg *.gif *.png);;所有文件(*.*); //文件过滤器QStringList fileListQFileDialog::getOpenFileNames(this,dlgTitle,curPath,filter);for (int i0; ifileList.count();i)ui-plainTextEdit-appendPlainText(fileList.at(i));
} getOpenFileNames()函数的传递参数与getOpenFileName()—样只是返回值是一个字符串列表列表的每一行是选择的一个文件。 3选择已有目录
选择己有目录可调用静态函数QFileDialoggetExistingDirectory()同样若需要传递对话框标题和初始路径还应传递一个选项一般用QFileDialog::ShowDirsOnly,表示对话框中只显示目录。 void Dialog::on_btnSelDir_clicked()
{ //选择文件夹QString curPathQCoreApplication::applicationDirPath(); //获取应用程序的路径
// QString curPathQDir::currentPath();//获取系统当前目录
//调用打开文件对话框打开一个文件QString dlgTitle选择一个目录; //对话框标题QString selectedDirQFileDialog::getExistingDirectory(this,dlgTitle,curPath,QFileDialog::ShowDirsOnly);if (!selectedDir.isEmpty())ui-plainTextEdit-appendPlainText(selectedDir);
} 静态函数QCoreApplication::applicationDirPath()返回应用程序可执行文件所在的目录getExistingDirectory()函数的返回值是选择的目录名称字符串。 4选择保存文件名
选择一个保存文件使用静态函数QFileDialog::getSaveFileName(),传递的参数与getOpenFileName()函数相同。只是在调用getsaveFileName()函数时若选择的是一个己经存在的文件会提示是否覆盖原有的文件。如果提示覆盖会返回为选择的文件但是并不会对文件进行实质操作对文件的删除操作需要在选择文件之后自己编码实现。如下面的代码即使选择覆盖文件由于 代码里没有实质地覆盖原来的文件也不会对选择的文件造成任何影响。 void Dialog::on_btnSave_clicked()
{//保存文件QString curPathQCoreApplication::applicationDirPath(); //获取应用程序的路径QString dlgTitle保存文件; //对话框标题QString filter文本文件(*.txt);;h文件(*.h);;C文件(.cpp);;所有文件(*.*); //文件过滤器QString aFileNameQFileDialog::getSaveFileName(this,dlgTitle,curPath,filter);if (!aFileName.isEmpty())ui-plainTextEdit-appendPlainText(aFileName);
} 3 QColorDialog对话框
QColorDialog是选择颜色对话框选择颜色使用静态函数QColorDialog::getColor()。 函数原型 QColor::getColor
(
const QColor initial Qt::white, //注1
QWidget* parent 0 //标准颜色对话框的父窗口
) 注1指定了默认选中的颜色默认为白色。通过QColor::isValid()函数可以判断用户选择的颜色是否有效但是当用户选择文件是如果选择“取消”Cancel则QColor::isValid()函数将返回false。 下面是“选择颜色”按钮的代码它为文本框的字体选择颜色。 void Dialog::on_btnColor_clicked()
{QPalette palui-plainTextEdit-palette(); //获取现有 paletteQColor iniColorpal.color(QPalette::Text); //现有的文字颜色QColor colorQColorDialog::getColor(iniColor,this,选择颜色);if (color.isValid()) //选择有效{pal.setColor(QPalette::Text,color); //palette 设置选择的颜色ui-plainTextEdit-setPalette(pal); //设置 palette}
} getColor()函数需要传递一个初始的颜色这里是将palette提取的文本颜色作为初始颜色。getColor()函数返回一个颜色变量若在颜色对话框里取消选择则返回的颜色值无效通过QColor::isValid()函数来判断返回是否有效。 4 QFontDialog对话框
QFontDialog是选择字体对话框选择字体使用静态函数QFontDialog::getFont()。 函数原型 QFont::getFont
(
bool* ok, //注1
QWidget* parent 0 //标准字体对话框的父窗口
) 注1若用户单击“OK”按钮则该参数*ok为true函数返回用户所选择的字体否则将设为false此时函数返回默认字体。 下面是“选择字体”按钮的代码它为文本框选择字体字体设置的内容包括字体名称、大小、粗体、斜体等。 void Dialog::on_btnFont_clicked()
{//选择字体QFont iniFontui-plainTextEdit-font(); //获取文本框的字体bool okfalse;QFont fontQFontDialog::getFont(ok,iniFont); //选择字体if (ok) //选择有效ui-plainTextEdit-setFont(font);
} getFont()返回一个字体变量但是QFont没有类似于isvalid()的函数来判断有效性所以在调用getFont()函数时以引用方式传递一个逻辑变量ok调用后通过判断ok是否为true来判断字体选择是否有效。 5 QInputDialog标准输入对话框
QInputDialog有单行字符串输入、整数输入、浮点数输入、列表框选择输入和多行文本等多种输入方式图6-2是其中4种界面效果。 图6-2 QInputDialog 4种输入对话框 1.输入文字
函数原型说明: QString getText
(
QWidget* parent, //标准输入对话框的父窗口
const QString title, //标准输入对话框的标题名
const QString label, //标准输入对话框的标签提示
QLineEdit::EchoMode modeQLineEdit::Normal,
//指定标准输入对话框中QLineEidt控件的输入模式
const QString text QString(), //标准字符输入对话中弹出式QLineEdit控件默认出现的文字
bool* ok 0, //注1
Qt::WindowFlags flags 0 //指明标准输入对话框的窗体标识
) 注1指示标准输入对话框的哪个按钮被触发若为true则表示用户单击了“OK”确定按钮若为false则表示用户单击了“Cancle”取消按钮。 QInputDialog::getText()函数显示一个对话框用于输入字符串传递的参数包括对话框标题、提示标签文字、缺省输入、编辑框响应模式等。 其中编辑框响应模式是枚举类型QLineEdit::EchoMode它控制编辑框上文字的显示方式正常情况下选择QLineEdit::Normal;如果是输入密码选择QLineEdit::Password。代码如下 void Dialog::on_btnInputString_clicked()
{ //输入字符串QString dlgTitle输入文字对话框;QString txtLabel请输入文件名;QString defaultInput新建文件.txt;QLineEdit::EchoMode echoModeQLineEdit::Normal;//正常文字输入
// QLineEdit::EchoMode echoModeQLineEdit::Password;//密码输入bool okfalse;QString text QInputDialog::getText(this, dlgTitle,txtLabel, echoMode,defaultInput, ok);if (ok !text.isEmpty())ui-plainTextEdit-appendPlainText(text);
} 2输入整数 函数原型说明 int getInt
(
QWidget* parent, //标准输入对话框的父窗口
const QString title, //标准输入对话框的标题名
const QString label, //标准输入对话框的标签提示
int value 0, //指定标准输入对话框中QSpinBox控件的默认显示值
int min -2147483647, //指定QSpinBox控件的数值范围
int max 2147483647, //指定QSpinBox控件的数值范围
int step 1, //指定QSpinBox控件的步进值
bool* ok 0, //注1
Qt::WindowFlags flags 0 //指明标准输入对话框的窗口标识
) 注1用于指示标准输入对话框的哪个按钮被触发了。若OK为true则表示用户单击了“OK”确定按钮若OK为false则表示用户单击了“Cancel”取消按钮。 使用QInputDialog::getInt()函数输入一个整数下面的代码为文本选择字体大小。 void Dialog::on_btnInputInt_clicked()
{//输入整数QString dlgTitle输入整数对话框;QString txtLabel设置字体大小;int defaultValueui-plainTextEdit-font().pointSize(); //现有字体大小int minValue6, maxValue50,stepValue1; //范围步长bool okfalse;int inputValue QInputDialog::getInt(this, dlgTitle,txtLabel,defaultValue, minValue,maxValue,stepValue,ok);if (ok) //是否确认输入{QFont fontui-plainTextEdit-font();font.setPointSize(inputValue);ui-plainTextEdit-setFont(font);}
} 输入整数对话框使用一个SpinBox组件输入整数getlnt()需要传递的参数包括数值大小范围、步长、初始值确认选择输入后将输入的整数值作为文本框字体的大小。 3输入浮点数
函数原型说明 double getDouble
(
QWidget* parent, //标准输入对话框的父窗口
const QString title, //标准输入对话框的标题名
const QString label, //标准输入对话框的标签提示
double value 0, //指定标准输入对话框中QSpinBox控件默认的显示值
double min -2147483647, //指定QSpinBox控件的数值范围
double max 2147483647, //指定QSpinBox控件的数值范围
int decimals 1, //指定QSpinBox控件的步进值
bool* ok 0, //注1
Qt::WindowFlags flags 0 //指明标准输入对话框的窗口标识
) 注1用于指示标准输入对话框的哪个按钮被触发若OK为true则表示用户单击了“OK”确定按钮若OK为false则表示用户单击了“Cancel”取消按钮。 使用QInputDialog::getDouble0函数输入一个浮点数输入对话框使用一个QDoubleSpinBox作为输入组件getDouble()的输入参数需要输入范围、初始值、小数点位数等。代码如下 void Dialog::on_btnInputFloat_clicked()
{ //输入浮点数QString dlgTitle输入浮点数对话框;QString txtLabel输入一个浮点数;float defaultValue3.13;float minValue0, maxValue10000; //范围int decimals2;//小数点位数bool okfalse;float inputValue QInputDialog::getDouble(this, dlgTitle,txtLabel,defaultValue, minValue,maxValue,decimals,ok);if (ok) //确认选择{QString strQString::asprintf(输入了一个浮点数:%.2f,inputValue);ui-plainTextEdit-appendPlainText(str);}
} 4.下拉列表选择输入 函数原型说明 QString getItem
(
QWidget* parent, //标准输入对话框的父窗口
const QString title, //标准输入对话框的标题名
const QString label, //标准输入对话框的标签提示
const QStringList items, //注1
int current 0, //注2
bool editable true, //指定QComboBox控件中显示的文字是否可编辑
bool* ok 0, //注3
Qt::WindowFlags flags 0 //指明标准输入对话框的窗体标识
) 注1指定标准输入对话框中QComboBox控件显示的可选条目为一个QStringList对象 注2标准条目选择对话框弹出时QComboBox控件中默认显示的条目序号 注3指示标准输入对话框的哪个按钮被触发若ok为true则表示用户单击了“OK”确定按钮若ok为false则表示用户单击了“Cancle”取消按钮。 使用QInputDialog::getItem()可以从一个ComboBox组件的下拉列表中选择输入。代码如下 void Dialog::on_btnInputItem_clicked()
{ //条目选择输入QStringList items; //ComboBox 列表的内容items 优秀良好合格不合格;QString dlgTitle条目选择对话框;QString txtLabel请选择级别;int curIndex0; //初始选择项bool editabletrue; //ComboBox是否可编辑bool okfalse;QString text QInputDialog::getItem(this, dlgTitle,txtLabel,items,curIndex,editable,ok);if (ok !text.isEmpty())ui-plainTextEdit-appendPlainText(text);
} getltem()函数需要一个QStringList变量为其ComboBox组件做条目初始化curlndex指明初始选择项editable表示对话框里的ComboBox是否可编辑若不能编辑则只能在下拉列表中选择。 6 QMessageBox消息对话框
1.函数原型 Question消息框 StandardButton QMessage::question
(
QWidget* parent, //消息框的父窗口指针
const QString title, //消息框的标题栏
const QString text, //消息框的文字提示信息
StandardButtons buttons ok, //注1
StandardButton defaultButton NoButton //注2
) 注1填写希望在消息框中出现的按钮可根据需要在标准按钮中选择用|连写默认为QMessageBox::Ok。QMessageBox类提供了许多标准按钮如QMessageBox::Ok、QMessageBox::Close、QMessage::Discard等。虽然在此可以选择但并不是随意选择的应注意按常规成对出现。例如通常Sava与Discard成对出现而Abort、Retry、Ignore则一起出现。 注2默认按钮即消息框出现时焦点默认处于哪个按钮上。 Information消息框 StandardButton QMessage::information
(
QWidget* parent, //消息框的父窗口指针
const QString title, //消息框的标题栏
const QString text, //消息框的文字提示信息
StandardButtons buttons ok, //同Question消息框的注释内容
StandardButton defaultButton NoButton //同Question消息框的注释内容
) Warning消息框 StandardButton QMessage::warning
(
QWidget* parent, //消息框的父窗口指针
const QString title, //消息框的标题栏
const QString text, //消息框的文字提示信息
StandardButtons buttons ok, //同Question消息框的注释内容
StandardButton defaultButton NoButton //同Question消息框的注释内容
) Critical消息框 StandardButton QMessage::critical
(
QWidget* parent, //消息框的父窗口指针
const QString title, //消息框的标题栏
const QString text, //消息框的文字提示信息
StandardButtons buttons ok, //同Question消息框的注释内容
StandardButton defaultButton NoButton //同Question消息框的注释内容
) About消息框 StandardButton QMessage::about
(
QWidget* parent, //消息框的父窗口指针
const QString title, //消息框的标题栏
const QString text //消息框的文字提示信息
) About Qt消息框 void QMessageBox::aboutQt
(
QWidget* parent, //消息框的父窗口指针
const QString title QString() //消息框的标题栏
) 2.简单信息提示
消息对话框QMessageBox用于显示提示、警告、错误等信息或进行确认选择由几个静态函数实现这些功能详见表6-1。其中warning()、information()、critical()和about()这几个函数的输入参数和使用方法相同只是信息提示的图标有区别。例如warning()的函数原型是 StandardButton QMessageBox::warning(QWidget *parentconst QString titleconst QString text,StandardButtons buttonsOkStandardButton defaultButtonNoButton) 其中parent是对话框的父窗口指定父窗口之后打开对话框时对话框将自动显示在父窗口的上方中间位置title是对话框标题字符串text是对话框需要显示的信息字符串buttons是对话框提供的按钮缺省只有一个OK按钮defaultButton是缺省选择的按钮缺省表示没有选择。 warning()函数的返回结果是StandardButton类型。对话框上显示的按钮和缺省选中按钮也是StandardButton类型。 StandardButton是各种按钮的定义如OK、Yes、No、Cancel等其枚举取值是QMessageBox::Ok、QMessageBox::Cancel、QMessageBox::Close等详见Qt帮助文档中的StandardButton类型的说明。 对于warning()、information()、critical()和about()这几种对话框它们一般只有一个OK按钮且无须关心对话框的返回值。所以使用缺省的按钮设置即可。 void Dialog::on_btnMsgInformation_clicked()
{QString dlgTitleinformation消息框;QString strInfo文件已经打开字体大小已设置;// QMessageBox::information(this, dlgTitle, strInfo);//使用缺省的按钮QMessageBox::information(this, dlgTitle, strInfo,QMessageBox::Ok,QMessageBox::NoButton);
}void Dialog::on_btnMsgWarning_clicked()
{QString dlgTitlewarning 消息框;QString strInfo文件内容已经被修改;QMessageBox::warning(this, dlgTitle, strInfo);
// QMessageBox::warning(this, dlgTitle, strInfo, QMessageBox::Ok,QMessageBox::NoButton);
}void Dialog::on_btnMsgCritical_clicked()
{QString dlgTitlecritical消息框;QString strInfo有不明程序访问网络;QMessageBox::critical(this, dlgTitle, strInfo);
// QMessageBox::critical(this, dlgTitle, strInfo, QMessageBox::Ok,QMessageBox::NoButton);
}void Dialog::on_btnMsgAbout_clicked()
{QString dlgTitleabout消息框;QString strInfo我开发的数据查看软件 V1.0 \n 保留所有版权;QMessageBox::about(this, dlgTitle, strInfo);
}void Dialog::on_btnMsgAboutQt_clicked()
{QString dlgTitleaboutQt消息框;QMessageBox::aboutQt(this, dlgTitle);
} 3.确认选择对话框
QMessageBox::question()函数用于打开一个选择对话框提示 信息并提供Yes、No、OK、Cancel等按钮用户单击某个按钮返 回选择。 静态函数QMessageBox::question()的原型如下 StandardButton QMessageBox::question(QWidget *parentconst QString titleconst QString text,StandardButtons buttons StandardButtonsYes|NOStandardButton defaultButtonNoButton) question()对话框的关键是在其中可以选择显示多个按钮例如同时显示Yes、No、OK或Cancel。其返回结果也是一个StandardButton类型变量表示哪个按钮被单击了,并根据对话框选择结果进行了判断和显示。 void Dialog::on_btnMsgQuestion_clicked()
{QString dlgTitleQuestion消息框;QString strInfo文件已被修改是否保存修改;QMessageBox::StandardButton defaultBtnQMessageBox::NoButton; //缺省按钮QMessageBox::StandardButton result;//返回选择的按钮resultQMessageBox::question(this, dlgTitle, strInfo,QMessageBox::Yes|QMessageBox::No |QMessageBox::Cancel,defaultBtn);if (resultQMessageBox::Yes)ui-plainTextEdit-appendPlainText(Question消息框: Yes 被选择);else if(resultQMessageBox::No)ui-plainTextEdit-appendPlainText(Question消息框: No 被选择);else if(resultQMessageBox::Cancel)ui-plainTextEdit-appendPlainText(Question消息框: Cancel 被选择);elseui-plainTextEdit-appendPlainText(Question消息框: 无选择);
}