当前位置: 首页 > news >正文

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); //将当前的文本设置成该字体


    }

作业

#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){}}

http://www.lryc.cn/news/304559.html

相关文章:

  • $attrs
  • OS X(MACOS) C/C++ 遍历系统所有的IP路由表配置。
  • 人工智能_普通服务器CPU_安装清华开源人工智能AI大模型ChatGlm-6B_003---人工智能工作笔记0098
  • 基于JAVA的实验室耗材管理系统 开源项目
  • NXP实战笔记(七):S32K3xx基于RTD-SDK在S32DS上配置ICU输入捕获
  • 左右联动布局效果
  • 【工具类】vscode ssh 远程免密登录开发
  • 【Antd】Form 表单获取不到 Input 的值
  • Encoder-decoder 与Decoder-only 模型之间的使用区别
  • 【STM32备忘录】【STM32WB系列的BLE低功耗蓝牙】一、测试广播配置搜不到信号的注意事项
  • ChatGPT 是什么
  • 4款好用的ai智能写作软件,为写作排忧解难!
  • js设计模式:计算属性模式
  • 2015-2024年考研数学(一)真题练习和解析——选择题
  • Git合并固定分支的某一部分至当前分支
  • Codeforces Round 928 (Div. 4) (A-E)
  • git远程操控gitee
  • 常见面试题:TCP的四次挥手和TCP的滑动窗口
  • 力扣随笔之两数之和 Ⅱ -输入有序数组(中等167)
  • 最优传输(Optimal Transport)
  • MIT-6.824-Lab2,Raft部分笔记|Use Go
  • 使用openeuler 22.03替代CentOS 7.9,建立虚拟机详细步骤
  • 代理技术引领出海征程
  • 谷粒商城篇章9 ---- P248-P261/P292-P294 ---- 消息队列【分布式高级篇六】
  • 【Spring连载】使用Spring Data访问 MongoDB(五)----生命周期事件
  • JavaSec 之 SQL 注入简单了解
  • 第十一章——期约与异步函数
  • 工具方法合集-utils.js
  • 安卓11-设置HDMI分辨率流程
  • Vue3+vite搭建基础架构(11)--- 菜单栏功能和Tab页功能实现