2.22号qt

1.使用信号和槽实现多个界面跳转

1.1准备两个界面

1.2第一个界面准备signal

1.3第二个界面准备slot

1.4将第一个界面的信号和槽进行连接

2.qss登录界面升级优化

2.1概念

Qss是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性,它是用来美化UI界面。实现界面和程序的分离,快速切换界面。

优点:实现简单、便捷

2.2语法:

3.发布软件

4.对话框

对话框的种类:消息对话框、字体对话框、颜色对话框、文件对话框

4.1 消息对话框 QMessageBox

该类给用户提供了一种交互式的弹窗,提供了两种实现版本,分别是基于属性版本和基于静态成员函数版本。

消息对话框种类: 警告对话框、问题对话框、信息对话框、错误对话框

4.1.1 基于属性版本

//警告按钮对应的槽函数处理

void Widget::on_warBtn_clicked()

{

//弹出警告对话框

QMessageBox msg(

QMessageBox::Warning,//对话框图标

"警告",//对话框标题

"放学后,你等着",//提示文本

QMessageBox::Yes | QMessageBox::No, //提供的按钮

this); //指定父组件

//调用exec()弹出对话框

int ret = msg.exec();

4.1.2 基于静态成员函数版本

//调用QMessageBox的静态成员函数 弹出对话框

int ret = QMessageBox::question(this, //指定父组件

"问题",//标题

"同学们,你们饿吗?",//文本

QMessageBox::Yes | QMessageBox::No);//提供按钮

//根据用户选中的按钮 执行不同的功能

if(ret == QMessageBox::Yes)

{

qDebug() << "好饿,赶紧下课,干饭干饭";

}

else

{

qDebug() << "我爱学习,饿是什么";

}

4.2 字体对话框 QFontDialog

该类给用户提供了一个字体对话框,直接调用该类的一个静态成员函数getFont()即可弹出字体对话框。

bool ok;

//弹出字体对话框

QFont f = QFontDialog::getFont(

&ok, //判断用户是否选中字体

QFont("楷体",8,10),//初始字体

this,//指定父组件

"字体对话框" //对话框标题

);

//判断用户是否选中有效字体

if(ok)

{

//说明用户选中字体

//将ui界面上的文本设置成用户选中的字体

//ui->textEdit->setFont(f); //将文本全部设置成该字体

ui->textEdit->setCurrentFont(f); //将当前的文本设置成该字体

}

作业

cpp 复制代码
#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)
    {

    }



}
相关推荐
kissSimple12 分钟前
UE行为树编辑器图文笔记
笔记·ue5·编辑器·unreal engine·unreal engine 5
l1x1n022 分钟前
DOS 命令学习笔记
笔记·学习·web安全
winds~1 小时前
自动驾驶-问题笔记-待解决
人工智能·笔记·自动驾驶
s_little_monster2 小时前
【QT】QT入门
数据库·c++·经验分享·笔记·qt·学习·mfc
alfiy2 小时前
Elasticsearch学习笔记(六)使用集群令牌将新加点加入集群
笔记·学习·elasticsearch
爱学的小涛2 小时前
【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解
java·开发语言·笔记·后端·nio
爱学的小涛2 小时前
【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
java·开发语言·笔记·后端·nio
JavaGPT3 小时前
prometheus学习笔记之PromQL
笔记·学习·prometheus
害羞的白菜3 小时前
Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)
linux·运维·笔记·jmeter·nginx·centos·负载均衡
m0_6896182814 小时前
水凝胶发生器,不对称设计妙,医电应用前景广
笔记