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

【QT】练习1

1、设计一个颜色选择器,可以输入RGB的颜色值,点击确认,可以把主界面的背景颜色改成设置的颜色
修改背景颜色:setStyleSheet(“background-color 红绿蓝颜色值”);

// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

// 确认按钮对应的槽函数
void MainWindow::on_pushButton_clicked()
{
    // 获取单行输入框的3个颜色
    QString r = ui->lineEdit->text();
    QString g = ui->lineEdit_2->text();
    QString b = ui->lineEdit_3->text();
    // 拼接得到完整的qss语句
    QString color_display = "background-color:rgb("+r+","+g+","+b+");";
    // 设置主窗口的背景色
    this->setStyleSheet(color_display);
}

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

2、用户输入用户名或者密码出错三次,锁死输入框,在密码输入框的旁边加一个按钮,点击第一次的时候密码显示,点击第二次密码隐藏

// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    n=0;
    flag=0;
    //开始密码是隐藏的
    ui->pushButton_3->setStyleSheet("border-image:url(C:/xxx/xxx/Desktop/share/res/hide.jpg);");
}

MainWindow::~MainWindow()
{
    delete ui;
}

//登录按钮对应的槽函数
void MainWindow::on_pushButton_clicked()
{
    //获取单行输入框中输入的用户名和密码
    /*
        技巧:以我们正常的思维,能够想到的方法,QT基本都提供了
        找方法,涉及到哪个类,就去类中查找(函数名或者网上搜索)
    */
    QString name=ui->lineEdit->text();
    QString passwd=ui->lineEdit_2->text();
    //判断用户名和密码
    if(name=="aaa" && passwd=="123456")
        qDebug()<<"登录成功";
    else
    {
        n++;
        if(n>=3)
        {
            //锁死输入框
            ui->lineEdit->setEnabled(false);
            ui->lineEdit_2->setEnabled(false);
        }
    }

}
//密码显示隐藏按钮对应的槽函数
void MainWindow::on_pushButton_3_clicked()
{
    flag++;
    if(flag%2==1) //奇数次,密码显示
    {
        ui->lineEdit_2->setEchoMode(QLineEdit::Normal);
        ui->pushButton_3->setStyleSheet("border-image:url(C:/xxx/xxx/Desktop/share/res/disp.jpg);");
    }
    else //奇数次,密码隐藏
    {
        ui->lineEdit_2->setEchoMode(QLineEdit::Password);
        ui->pushButton_3->setStyleSheet("border-image:url(C:/xxx/xxx/Desktop/share/res/hide.jpg);");
    }
}

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_3_clicked();

private:
    Ui::MainWindow *ui;
    int n; //统计账号密码出错的次数
    int flag; //统计密码隐藏显示按钮点击次数
};
#endif // MAINWINDOW_H

http://www.dtcms.com/a/102981.html

相关文章:

  • 里昂惕夫矩阵:投入产出分析
  • element-plus走马灯(el-carousel)不显示问题
  • 【数论3】裴属定理与扩展欧几里得算法
  • naive_admin项目实战03 基于Go语言的后端
  • LearnOpenGL小练习(QOpenGLWidget版本)
  • 【杂谈】-大型语言模型对具身人工智能发展的推动与挑战
  • Apache Hive和Snowflake的`CREATE VIEW`语法和功能特性整理的对比表
  • 移动端六大语言速记:第5部分 - 面向对象编程(OOP)
  • 翻译: 人工智能如何让世界变得更美好三
  • 深入解析HTTP请求方法:Spring Boot实战与最佳实践
  • 【LeetCode 热题100】208:实现 Trie (前缀树)(详细解析)(Go语言版)
  • leetcode 53.Maximum Subarray
  • Docker学习--容器生命周期管理相关命令--run命令
  • Linux内核网络栈:数据发送流程解析
  • 每日壁纸更新 pc
  • 4.2 单相机引导机器人放料-仅考虑角度变化
  • FPGA实现4K MIPI视频解码H265压缩网络推流输出,基于IMX317+VCU架构,支持4K60帧,提供工程源码和技术支持
  • Unity启动画面去除教程:如何去除Unity的Splash Screen和水印
  • 嵌入式人工智能产品开发实战】(十八)—— 政安晨:小智AI的Websocket通信协议嵌入式终端代码解读
  • 《QDebug 2025年3月》
  • Qt中存储多规则形状图片
  • JAVA:利用 JSONPath 操作JSON数据的技术指南
  • 类的默认成员函数
  • 滤波---卡尔曼滤波
  • 《HarmonyOS Next开发进阶:打造功能完备的Todo应用华章》
  • USB有驱ID卡读卡器C#小程序开发
  • 【区块链安全 | 第二十三篇】单位和全局可用变量(一)
  • 基于Python的Django框架的手机购物商城管理系统
  • xcode项目配置只能竖屏显示
  • 【论文阅读】Dynamic Adversarial Patch for Evading Object Detection Models