Qss是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,它是用来美化UI界面。实现界面和程序的分离,快速切换界面。
优点:实现简单、便捷
对话框的种类:消息对话框、字体对话框、颜色对话框、文件对话框
该类给用户提供了一种交互式的弹窗,提供了两种实现版本,分别是基于属性版本和基于静态成员函数版本。
消息对话框种类: 警告对话框、问题对话框、信息对话框、错误对话框
//警告按钮对应的槽函数处理
void Widget::on_warBtn_clicked()
{
//弹出警告对话框
QMessageBox msg(
QMessageBox::Warning,//对话框图标
"警告",//对话框标题
"放学后,你等着",//提示文本
QMessageBox::Yes | QMessageBox::No, //提供的按钮
this); //指定父组件
//调用exec()弹出对话框
int ret = msg.exec();
//调用QMessageBox的静态成员函数 弹出对话框
int ret = QMessageBox::question(this, //指定父组件
"问题",//标题
"同学们,你们饿吗?",//文本
QMessageBox::Yes | QMessageBox::No);//提供按钮
//根据用户选中的按钮 执行不同的功能
if(ret == QMessageBox::Yes)
{
qDebug() << "好饿,赶紧下课,干饭干饭";
}
else
{
qDebug() << "我爱学习,饿是什么";
}
该类给用户提供了一个字体对话框,直接调用该类的一个静态成员函数getFont()即可弹出字体对话框。
bool ok;
//弹出字体对话框
QFont f = QFontDialog::getFont(
&ok, //判断用户是否选中字体
QFont("楷体",8,10),//初始字体
this,//指定父组件
"字体对话框" //对话框标题
);
//判断用户是否选中有效字体
if(ok)
{
//说明用户选中字体
//将ui界面上的文本设置成用户选中的字体
//ui->textEdit->setFont(f); //将文本全部设置成该字体
ui->textEdit->setCurrentFont(f); //将当前的文本设置成该字体
}
作业
- #include "widget.h"
- #include "ui_widget.h"
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- }
-
- Widget::~Widget()
- {
- delete ui;
- }
-
-
- void Widget::on_pushButton_clicked()
- {
- QString uname;
- QString pword;
- uname=ui->ed1->text();
- pword=ui->ed2->text();
-
- if(uname=="admin" && pword=="123456")
- {
-
- QMessageBox msg(
- QMessageBox::Information,
- "信息",
- "登录成功",
- QMessageBox::Ok,
- this);
-
-
-
- int ret = msg.exec();
- if(ret==QMessageBox::Ok)
- {
- this->close();
- emit jump_signal();
-
-
- }
- }
- else
- {
-
- int ret=QMessageBox::critical
- (this,
- "信息",
- "账号和密码不匹配,是否重新登录",
- QMessageBox::Yes |QMessageBox::No
-
-
- );
-
- if(ret==QMessageBox::Yes)
- {
- ui->ed2->clear();
-
-
-
- }
- else if(ret==QMessageBox::No)
- {
- this->close();
- }
-
-
-
-
-
-
-
- }
- }
-
-
-
- void Widget::on_pushButton_2_clicked()
- {
- int ret=QMessageBox::question( this,
- "问题",
- "您是否要退出",
- QMessageBox::Yes | QMessageBox::No
-
-
- );
-
- if(ret==QMessageBox::Yes)
- {
- this->close();
- }else if(ret==QMessageBox::No)
- {
-
- }
-
-
-
- }