2024.5.8

 

聊天框完善 

#include "mywidget.h"
#include "ui_mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    //设置窗口大小
    this->resize(400,560);
    //设置窗口图标和标题
    this->setWindowTitle("QQ");
    this->setWindowIcon(QIcon(":/pictrue/qq.png"));
    //设置固定窗口大小
    this->setFixedSize(400,560);
    //设置窗口去头部
    this->setWindowFlag(Qt::FramelessWindowHint);

    //设置窗口的背景
    lab1 = new QLabel(this);
    //设置文本大小
    lab1->resize(400,560);
    //设置动图
    QMovie *mv = new QMovie(":/pictrue/10.gif");

    //设置lab1自适应 + 动图放入lab1
    lab1->setMovie(mv);
    //设置动图运动
    mv->start();
    lab1->setScaledContents(true);
    //设置头像框 152*82
    lab2 = new QLabel(this);
    //设置头像框大小和位置
    lab2->resize(100,100);
    lab2->move(152,82);
    //设置头像框为圆形
    lab2->setStyleSheet("border-radius:50%");
    //设置头像自适应
    lab2->setScaledContents(true);
    //设置头像框头像
    //lab2->setPixmap(QPixmap(":/pictrue/15.gif"));
    QMovie *mv2 = new QMovie(":/pictrue/15.gif");
    lab2->setMovie(mv2);
    mv2->start();

    //设置账号文本
    line1 = new QLineEdit(this);
    //设置账号文本位置和大小   41*210   310*60
    line1->resize(310,50);
    line1->move(41,210);
    //设置文本背景色,边角圆弧
    line1->setStyleSheet("background-color:white;border-radius:10px;font:bold 20px");
    //设置文本提示(占位)
    line1->setPlaceholderText("输入QQ号");

    //设置密码文本
    line2 = new QLineEdit(this);
    //设置密码文本位置大小
    line2->resize(310,50);
    line2->move(41,275);
    //设置文本背景色和边角圆弧  41*402
    line2->setStyleSheet("background-color:white;border-radius:10px;font:bold 20px");
    //设置文本提示(占位)
    line2->setPlaceholderText("输入QQ密码");
    //设置为密码模式
    line2->setEchoMode(QLineEdit::Password);

    //设置按钮
    btn1 = new QPushButton("登录",this);
    //设置按钮位置和大小
    btn1->resize(310,50);
    btn1->move(41,400);

    //设置按钮不可用
    btn1->setEnabled(false);
    //设置按钮的颜色,背景色,字体大小,居中
    btn1->setStyleSheet("background-color:rgb(80,80,80);color:white;font:bold 20px;border-radius:10px;text-align:center");

    //设置关闭按钮
    btn2 = new QPushButton("X",this);
    //设置关闭按钮位置和大小
    btn2->resize(20,20);
    btn2->move(380,0);

    //实例化一个checkbox按钮
    che1 = new QCheckBox("我已阅读并同意服务协议和QQ隐私保护指引",this);
    che1->move(38,350);
    che1->resize(320,15);
    che1->setStyleSheet("color:white");

    //设置信号与槽
    connect(this->btn1,&QPushButton::clicked,this,&MyWidget::btn1_clicked);
    connect(btn2,&QPushButton::clicked,this,&MyWidget::btn2_clicked);
    connect(this->line1,&QLineEdit::textChanged,this,&MyWidget::btn1_perception1);
    connect(this->line2,&QLineEdit::textChanged,this,&MyWidget::btn1_perception2);
}

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

void MyWidget::btn1_clicked(){

    if(this->line1->text() == this->line2->text()){
        QMessageBox box(QMessageBox::Information,"提示", "登陆成功",QMessageBox::Ok,this);
        int res = box.exec();
        if(res==QMessageBox::Ok){
             this->close();
            emit main_sign();
        }
    }else{
        QMessageBox box(QMessageBox::Warning,"警告","密码错误",QMessageBox::Ok|QMessageBox::Help,this);
        int res = box.exec();
        if(res==QMessageBox::Ok){
            line2->clear();
        }else if(res==QMessageBox::Help){

            line2->clear();
            QDesktopServices::openUrl(QUrl("https://accounts.qq.com/find/password?from=11"));
        }
    }
}

void MyWidget::btn2_clicked(){
    int res=QMessageBox::question(this,"提示","你确定要关闭QQ吗",QMessageBox::Yes|QMessageBox::No,QMessageBox::No);
    if(res==QMessageBox::Yes){
        this->close();
    }
}


void MyWidget::btn1_perception1(){
    if(this->line1->text().length()<5 || this->line2->text().length()<5){
        btn1->setStyleSheet("background-color:rgb(80,80,80);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(false);
    }else{
        btn1->setStyleSheet("background-color:rgb(0,141,235);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(true);
    }
}
void MyWidget::btn1_perception2(){
    if(this->line2->text().length()<5 || this->line1->text().length()<5){
         btn1->setStyleSheet("background-color:rgb(80,80,80);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(false);
    }else{
        btn1->setStyleSheet("background-color:rgb(0,141,235);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(true);
    }
}

 对话框功能实现

#include "mywidget.h"
#include "ui_mywidget.h"

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

    //设置窗口大小
    this->resize(700,600);

    //实例化text文本窗口
    text = new QTextEdit(this);
    //设置文本窗口大小
    text->resize(700,450);

    //实例化按钮
    btn1 = new QPushButton("字体",this);
    btn2 = new QPushButton("颜色",this);
    btn3 = new QPushButton("打开文件",this);
    btn4 = new QPushButton("保存到文件",this);

    //设置四个按钮的大小和位置
    btn1->resize(100,50);
    btn2->resize(100,50);
    btn3->resize(100,50);
    btn4->resize(100,50);
    btn1->move(70,500);
    btn2->move(220,500);
    btn3->move(370,500);
    btn4->move(520,500);

    //设置信号与槽的连接
    connect(btn1,&QPushButton::clicked,this,&MyWidget::btn1_clicked);
    connect(btn2,&QPushButton::clicked,this,&MyWidget::btn2_clicked);
    connect(btn3,&QPushButton::clicked,this,&MyWidget::btn3_clicked);
    connect(btn4,&QPushButton::clicked,this,&MyWidget::btn4_clicked);
}
void MyWidget::btn1_clicked(){
    bool ok;
    QFont t = QFontDialog::getFont(&ok,QFont("楷体",10,10,true),this,"字体");
    if(ok){
        text->setFont(t);
    }
}

void MyWidget::btn2_clicked(){
    QColor c = QColorDialog::getColor(QColor("green"),this,"颜色");
    if(c.isValid()==true){
        text->setTextColor(c);
    }
}
void MyWidget::btn3_clicked(){
    QString file1 = QFileDialog::getOpenFileName(this,"文件","./","all(*.*)");
    QFile file(file1);
    if(file.open(QFile::ReadOnly)==false){
        QMessageBox::information(this,"提示","打开文件失败");
        return;
    }
    QByteArray msg = file.readAll();
    text->setText(msg);
    file.close();
}

void MyWidget::btn4_clicked(){
    QString file1 = QFileDialog::getOpenFileName(this,"文件","./","all(*.*)");
    QFile file(file1);
    if(file.open(QFile::WriteOnly)==false){
        QMessageBox::information(this,"提示","打开文件失败");
        return;
    }
    QString msg = text->toPlainText();
    file.write(msg.toUtf8().constData());
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值