Qt学习笔记12:基本会话框4——总结

在这里插入图片描述

文件对话框静态函数

QString QFileDialog::getOpenFileName
{
	QWidget *parent = 0;				//标准文件对话框的父窗口
	const QString &caption = QString();	//标准文件对话框的标题名
	const QString &dir = QString();		//指定了默认的目录
	const QString &filter = QString();	//对文件类型进行过滤,只有与过滤器匹配的文件类型才显示,可以同事指定多种多滤方式,用”;;“隔开
	QString *selectedFilter = 0;		//用户选择的过滤器通过此参数返回
	Options options = 0;				//选择显示文件名的格式,默认是同时显示目录与文件名
}

使用:

 //以自己为父窗口,命名为“open file dialog",从”/“目录开始搜索,
 //寻找.c,.cpp以及.h文件
 QString s = QFileDialog::getOpenFileName(this,"open file dialog","/"
 				,"C++ files(*.cpp);;C file(*.c);;Head files(*.h)");
fileLineEdit->setText(s);

效果如果:
在这里插入图片描述
标准颜色对话框静态函数

QColor getColor()
{
	const QColor &initial = Qt::white;//指出默认选中的颜色
	QWidget *parent = 0;
}

通过QColor::isValid()函数判断用户选择的颜色是否有效

void Dialog::showColor()
{
    QColor c = QColorDialog::getColor(Qt::blue);
    if(c.isValid())
    {
        colorFrame->setPalette(QPalette(c));
    }
}

效果如下:
在这里插入图片描述
字体对话框静态函数

QFont getFont
{
	bool *ok;//用户选择ok,*ok为true,函数返回用户选择的字体,否则,返回默认字体
	QWidget *parent = 0;
}

使用:

void dialog::showFont()
{
    bool ok;
    QFont f = QFontDialog::getFont(&ok);
    if(ok)
    {
        fontLineEdit->setFont(f);
    }
}    

效果:
在这里插入图片描述

各种输入对话框

字符串输入对话框
静态函数getText()

QString getText
{
	QWidget *parent,			//父窗口
	const QString &title,		//标题名
	const QString &label,		//标签提示
	QLineEdit::EchoMode mode = QLineEdit::Normal,	//QLineEdit控件的输入模式
	const QString &text = QString(),		//对话框弹出时QLineEdit控件中默认出现的文字
	bool *ok = 0,		//指示哪个按钮被触发
	Qt::WindowFlags flags = 0			//指明对话框的窗体标识
};

使用:

void InputDlg::ChangeName()
{
    bool ok;
    QString text = QInputDialog::getText(this,tr("标准字符串输入对话框"),tr("请输入姓名: "),QLineEdit::Normal,nameLabel2->text(),&ok);
    if(ok && !text.isEmpty())
    {
        nameLabel2->setText(text);
    }
}

效果:
在这里插入图片描述

条目对话框
静态函数getItem()

QString getItem
{
	QWidget *parent,
	const QString &title,
	const QString &label,
	const QString &items,	//指定QComboBox控件显示的可选条目是一个QStringList对象
	int current = 0,		//QComboBox控件中默认显示的条目的序号
	bool *ok = 0,
	Qt::WindowFlags flags = 0
};

使用:

void InputDlg::ChangeSex()
{
    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);
}

效果:
在这里插入图片描述

int类型输入对话框
静态函数getInt()

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控件的步进值,也就是按上下一次增加多少
	book *ok = 0,
	Qt::WindowFlags flags = 0
};

使用:

void InputDlg::changeAge()
{
    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类型输入对话框
静态函数getDouble()

double getDouble
{
	QWidget *parent,
	const QString &title.
	const QString &label,
	double valur = 0,			//QSpinBox控件的默认显示值
	double min = -2147483647,	//QSpinBox控件的范围
	double max = 2147483647,
	int decimals = 1,			//QSpinBox的步进值
	bool *ok = 0,
	Qt::WindowFlags flags = 0
};

使用:

void InputDlg::ChangeScore()
{
    bool ok;
    double score = QInputDialog::getDouble(this,tr("标准double输入对话框"),tr("请输入成绩: "),
                                           scoreLabel2->text().toDouble(&ok),0,100,1,&ok);
    if(ok)
        scoreLabel2->setText(QString(tr("%1")).arg(score));
}

效果:
在这里插入图片描述

消息会话框

Question消息框
静态函数QMessageBox::question

StandardButton QMessageBox::question
{
	QWidget *parent,
	const QString &title,
	const QString &text,
	StandardButtons buttons = Ok,			//填写希望在消息框中出现的按钮
	StandardButton defaultButton=NoButton	//默认按钮焦点默认处于哪个按钮
};

对于上述的Ok,可以用 | 连写,QMessageBox类提供了很多标准按钮,例如:
QMessageBox::Ok、QMessageBox::Close、QMessageBox::Discard等,这些东西虽然可以选择,但不可乱选,且通常都是成对出现的,例如:
Save与Discard
Abort、Retry、Ignore一起出现

使用:

void MsgBoxDlg::showQuestinMsg()
{
    label->setText(tr("Question Message Box"));
    switch(QMessageBox::question(this,tr("Question 消息框"),
            tr("您现在已经修改完成,是否要结束程序?"),
             QMessageBox::Ok | QMessageBox::Cancel,QMessageBox::Ok))
    {
        case QMessageBox::Ok:
            label->setText("Question button/Ok");
            break;
        case QMessageBox::Cancel:
            label->setText("Question button\Cancel");
            break;
        default:
            break;
    }
}

效果:
在这里插入图片描述
Information消息框
静态函数Information()

StandardButton QMessageBox::information
{
	QWidget *parent,
	const QString &title,
	const QString &text,
	StandardButtons buttons = Ok,			//同上
	StandardButton defaultButton = NoButton	//同上
};

使用:

void MsgBoxDlg::showInformationMsg()
{
    label->setText(tr("Information Message Box"));
    QMessageBox::information(this,tr("Information消息框"),tr("这是Information对话框,欢迎您!"));
}

效果:
在这里插入图片描述
Warning消息框
静态函数warning()

StandardButton QMessage::warning
{
	QWidget *parent,
	const QString &title,
	const QString &text,
	StandardButtons buttons = Ok,
	StandardButton defaultButton=NoButton
};

使用:

void MsgBoxDlg::showWarningMsg()
{
    label->setText(tr("Warning Message Box"));
    switch(QMessageBox::warning(this,tr("Warning消息框"),tr("您修改的内容还未保存,是否要保存对文档的修改?"),
                                QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,QMessageBox::Save))
    {
        case QMessageBox::Save:
            label->setText(tr("Warning button/Save"));
            break;
        case QMessageBox::Discard:
            label->setText(tr("Warning button/Discard"));
            break;
        case QMessageBox::Cancel:
            label->setText(tr("Warning button/Cancle"));
            break;
        default:
            break;
    }
}

效果:
在这里插入图片描述
Critical消息框
静态函数critical()

StandardButton QMessageBox::critical()
{
	QWidget *parent,
	const QString &title,
	const QString &text,
	StandardButtons buttons = Ok,
	StandardButton defaultButton = NoButton
};

使用:

void MsgBoxDlg::showCriticalMsg()
{
    label->setText(tr("Critical Message Box"));
    QMessageBox::critical(this,tr("Critical消息框"),tr("这是一个Critical消息框!"));
}

效果:
在这里插入图片描述
About消息框
静态函数about()

void MessageBox::about
{
	QWidget *parent,
	const QString &title,
	const QString &text
};

使用:

void MsgBoxDlg::showAboutMsg()
{
    label->setText(tr("About Message Box"));
    QMessageBox::about(this,tr("About消息框"),tr("这是一个About消息框!"));
}

效果:
在这里插入图片描述
AboutQt消息框
静态函数aboutQt()

void QMessageBox::aboutQt
{
	QWidget *parent,
	const QString &title = QString()
};

使用:

void MsgBoxDlg::showAboutQtMsg()
{
    label->setText(tr("About Qt Message Box"));
    QMessageBox::aboutQt(this,tr("About Qt 消息框"));
}

效果:
在这里插入图片描述
自定义消息框

void dialog::showCustomDlg()
{
    label->setText(tr("Custom Message Box"));
    QMessageBox customMsgBox;
    customMsgBox.setWindowTitle(tr("用户自定义消息框"));
//addButton()函数为消息框添加自定义的按钮,第一个参数为按钮名,第二个参数为按钮的类型
    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("0.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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值