1、设计一个颜色选择器,可以输入RGB的颜色值,点击确认,可以把主界面的背景颜色改成设置的颜色
修改背景颜色:setStyleSheet("background-color 红绿蓝颜色值");
cpp
// 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、用户输入用户名或者密码出错三次,锁死输入框,在密码输入框的旁边加一个按钮,点击第一次的时候密码显示,点击第二次密码隐藏
cpp
// 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