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


        }

    作业

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. ui->setupUi(this);
    8. }
    9. Widget::~Widget()
    10. {
    11. delete ui;
    12. }
    13. void Widget::on_pushButton_clicked()
    14. {
    15. QString uname;
    16. QString pword;
    17. uname=ui->ed1->text();
    18. pword=ui->ed2->text();
    19. if(uname=="admin" && pword=="123456")
    20. {
    21. QMessageBox msg(
    22. QMessageBox::Information,
    23. "信息",
    24. "登录成功",
    25. QMessageBox::Ok,
    26. this);
    27. int ret = msg.exec();
    28. if(ret==QMessageBox::Ok)
    29. {
    30. this->close();
    31. emit jump_signal();
    32. }
    33. }
    34. else
    35. {
    36. int ret=QMessageBox::critical
    37. (this,
    38. "信息",
    39. "账号和密码不匹配,是否重新登录",
    40. QMessageBox::Yes |QMessageBox::No
    41. );
    42. if(ret==QMessageBox::Yes)
    43. {
    44. ui->ed2->clear();
    45. }
    46. else if(ret==QMessageBox::No)
    47. {
    48. this->close();
    49. }
    50. }
    51. }
    52. void Widget::on_pushButton_2_clicked()
    53. {
    54. int ret=QMessageBox::question( this,
    55. "问题",
    56. "您是否要退出",
    57. QMessageBox::Yes | QMessageBox::No
    58. );
    59. if(ret==QMessageBox::Yes)
    60. {
    61. this->close();
    62. }else if(ret==QMessageBox::No)
    63. {
    64. }
    65. }

  • 相关阅读:
    立体相机镜面重建(一)镜面标定
    如何为集中认证安装OpenLDAP服务器
    程序流程控制语句
    番外番外——猜数字游戏
    React工具
    初识Spring框架~控制反转IoC、依赖注入DI以及Spring项目的创建方式
    (新)Spring Security如何实现跨域
    【跟小嘉学 Rust 编程】二十四、内联汇编(inline assembly)
    LeetCode每日一题——1161. 最大层内元素和
    新浪财经行情中心的对象 Market_Center
  • 原文地址:https://blog.csdn.net/m0_70839106/article/details/136243038