版权声明:欢迎大佬们指点 https://blog.csdn.net/bloke_come/article/details/82759890
标准文件对话框(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)"); // 全部文件(*.*)
标准颜色对话框(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);
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");