From 546b53a5e82b5f159de99851c95c754bb3e38cf9 Mon Sep 17 00:00:00 2001 From: Msy-msu <2200456405@qq.com> Date: Mon, 9 Jan 2023 15:54:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86linux=E4=B8=8B?= =?UTF-8?q?=E7=9A=84bug=EF=BC=8C=E5=B9=B6=E4=B8=80=E5=AE=9A=E7=A8=8B?= =?UTF-8?q?=E5=BA=A6=E4=BC=98=E5=8C=96=E4=BA=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TcpClient.pro.user | 2 +- datamanager.cpp | 15 +++++------ login.cpp | 55 ++++++++++++++++++++++++++++++++-------- login.h | 6 ++++- login.ui | 4 +-- mainwidget.cpp | 7 +++--- mainwidget.h | 1 + mainwidget.ui | 63 +++++++++++++++++++++++++++++----------------- protocol.cpp | 9 ++++--- protocol.h | 2 +- signup.cpp | 1 + tcpclient.cpp | 1 + 12 files changed, 114 insertions(+), 52 deletions(-) diff --git a/TcpClient.pro.user b/TcpClient.pro.user index 4f418f1..06f9865 100644 --- a/TcpClient.pro.user +++ b/TcpClient.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/datamanager.cpp b/datamanager.cpp index 77a7c08..1d22800 100644 --- a/datamanager.cpp +++ b/datamanager.cpp @@ -8,6 +8,7 @@ DataManager::DataManager(QObject *parent) connect(tcpclient, &TCPClient::TCPClientConnected, this, &DataManager::TCPClientConnected); connect(tcpclient, &TCPClient::TCPClientDisconnected, this, &DataManager::TCPClientDisconnected); connect(tcpclient, &TCPClient::recv_data, this, &DataManager::recv_from_server); + tcpclient->setServer("192.168.126.129",7890); tcpclient->configAndrun(); // tcpclient->setCallBack(recv_from_server); protocol = Protocol::getInstance(); @@ -126,7 +127,7 @@ void DataManager::Register(QString username, QString password) data = protocol->data_maker(Protocol::REQUEST, QString("register"), QList{"user", username, "password", password}); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "发送注册信息" << username << password; + qDebug() << "发送注册信息" << data; } void DataManager::signin_request(QString username, QString password) @@ -135,7 +136,7 @@ void DataManager::signin_request(QString username, QString password) data = protocol->data_maker(Protocol::REQUEST, QString("signin"), QList{"user", username, "password", password}); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "发送登录信息" << username << password; + qDebug() << "发送登录信息" << data; } void DataManager::send_text(QString sendname, QString text) @@ -144,7 +145,7 @@ void DataManager::send_text(QString sendname, QString text) data = protocol->data_maker(Protocol::MESSAGE, sendname, text); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "群发文本信息" << sendname; + qDebug() << "群发文本信息" << data; } void DataManager::send_to_user(QString sendname, QString to_user, QString text) @@ -153,7 +154,7 @@ void DataManager::send_to_user(QString sendname, QString to_user, QString text) data = protocol->data_maker(Protocol::MESSAGE, sendname, to_user, text); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "私发文本信息" << sendname << to_user; + qDebug() << "私发文本信息" << data; } void DataManager::send_file_to_all(QString sendname, QString filename, QByteArray file) @@ -162,7 +163,7 @@ void DataManager::send_file_to_all(QString sendname, QString filename, QByteArra data = protocol->data_maker(Protocol::FILE, sendname, filename, QString(file)); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "群发文件" << sendname; + qDebug() << "群发文件" << data; } void DataManager::send_file_private(QString sendname, QString filename, QByteArray file, QString name) @@ -171,7 +172,7 @@ void DataManager::send_file_private(QString sendname, QString filename, QByteArr data = protocol->data_maker(Protocol::FILE, name, sendname, filename, QString(file)); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "私发文件" << sendname << name; + qDebug() << "私发文件" << data; } void DataManager::account_cancellation(QString username) @@ -189,5 +190,5 @@ void DataManager::update_namelist(QString username) data = protocol->data_maker(Protocol::REQUEST, QString("update_namelist"),QList{"name",username}); data_encrypt = protocol->data_encrypt(data); tcpclient->sendToserver(data_encrypt); - qDebug() << "发送更新在线用户列表信息"; + qDebug() << "发送更新在线用户列表信息" << data; } diff --git a/login.cpp b/login.cpp index 4c12713..46b95dc 100644 --- a/login.cpp +++ b/login.cpp @@ -28,6 +28,7 @@ Login::~Login() delete ui; } +/**************************************QEvent*************************************/ void Login::paintEvent(QPaintEvent *event) { //创建画家,指定绘图设备 @@ -78,17 +79,6 @@ void Login::paintEvent(QPaintEvent *event) ui->btn_signup->setGraphicsEffect(shadow); } -void Login::new_closebutton(QPushButton* btn, QString position,QSize size) -{ - QPixmap pixmap; - pixmap.load(position); - btn->setIconSize(size); - btn->setStyleSheet("QPushButton{border-width: 1px;border-style: solid;border-radius:15px;background-color: rgb(64, 145, 252);}" - "QPushButton:hover{background-color:#999999;}"); - //设置图标 - btn->setIcon(pixmap); -} - void Login::mousePressEvent(QMouseEvent *event) { if (event->buttons() == Qt::LeftButton) @@ -122,8 +112,12 @@ void Login::mouseMoveEvent(QMouseEvent *event) event->accept(); } + +/***************************************SLOTS************************************/ void Login::on_btn_signin_clicked() { + this->zoom_down(ui->btn_signin); + this->zoom_up(ui->btn_signin); if(connect_flag == true) { user = ui->lineEdit_username->text(); @@ -143,6 +137,8 @@ void Login::on_btn_signin_clicked() void Login::on_btn_signup_clicked() { + this->zoom_down(ui->btn_signup); + this->zoom_up(ui->btn_signup); signup = new Signup(); connect(signup,&Signup::show_login_ui,this,&Login::show_login_ui); connect(signup,&Signup::Register,this,&Login::slot_Register); @@ -232,3 +228,40 @@ void Login::exit_client() { this->close(); } + +/************************************private functions************************************/ +void Login::zoom_down(QPushButton* btn) +{ + QPropertyAnimation *animalton = new QPropertyAnimation(btn,"geometry"); + //设置间隔时间 + animalton->setDuration(200); + //设置起始位置 + animalton->setStartValue(QRect(btn->x(),btn->y(),btn->width(),btn->height())); + //设置结束位置 + animalton->setEndValue(QRect(btn->x(),btn->y()+5,btn->width(),btn->height())); + //设置动画曲线 + animalton->setEasingCurve(QEasingCurve::OutBounce); + animalton->start(); + +} + +void Login::zoom_up(QPushButton* btn) +{ + QPropertyAnimation *animalton = new QPropertyAnimation(btn,"geometry"); + animalton->setDuration(200); + animalton->setStartValue(QRect(btn->x(),btn->y()+5,btn->width(),btn->height())); + animalton->setEndValue(QRect(btn->x(),btn->y(),btn->width(),btn->height())); + animalton->setEasingCurve(QEasingCurve::OutBounce); + animalton->start(); +} + +void Login::new_closebutton(QPushButton* btn, QString position,QSize size) +{ + QPixmap pixmap; + pixmap.load(position); + btn->setIconSize(size); + btn->setStyleSheet("QPushButton{border-width: 1px;border-style: solid;border-radius:15px;background-color: rgb(64, 145, 252);}" + "QPushButton:hover{background-color:#999999;}"); + //设置图标 + btn->setIcon(pixmap); +} diff --git a/login.h b/login.h index d07f473..645228c 100644 --- a/login.h +++ b/login.h @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -30,7 +31,6 @@ public: void paintEvent(QPaintEvent *event); void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); - void new_closebutton(QPushButton* btn, QString position,QSize size); signals: void signin_request(QString username,QString password); @@ -60,6 +60,10 @@ private: DataManager *datamanager; bool connect_flag = false; + void new_closebutton(QPushButton* btn, QString position,QSize size); + void zoom_up(QPushButton* btn); + void zoom_down(QPushButton* btn); + }; #endif // LOGIN_H diff --git a/login.ui b/login.ui index a585552..b6f56af 100644 --- a/login.ui +++ b/login.ui @@ -40,7 +40,7 @@ border-radius:7px; padding:2px 4px; font: 14pt "Candara";} -QPushButton:hover +QPushButton:pressed {background-color:#999999;} @@ -98,7 +98,7 @@ border-radius:7px; padding:2px 4px; font: 14pt "Candara";} -QPushButton:hover +QPushButton:pressed {background-color:#999999;} diff --git a/mainwidget.cpp b/mainwidget.cpp index 41c6ecf..2be44fe 100644 --- a/mainwidget.cpp +++ b/mainwidget.cpp @@ -6,6 +6,7 @@ MainWidget::MainWidget(QString username,QWidget *parent) : ui(new Ui::MainWidget) { ui->setupUi(this); + this->setFixedSize(this->width(), this->height()); this->setWindowIcon(QIcon(":/icon.png")); this->setWindowTitle(QString("TCP聊天室:%1").arg(username)); ui->name_list->setEditTriggers(QAbstractItemView::NoEditTriggers); //不允许编辑 @@ -166,8 +167,8 @@ void MainWidget::on_exit_btn_clicked() if(response == QMessageBox::Yes) { - emit exit_client(); - emit update_namelist(username); + //emit exit_client(); + //emit update_namelist(username); this->close(); } else @@ -184,7 +185,7 @@ void MainWidget::on_stop_clicked() if(response == QMessageBox::Yes) { qDebug() << "点击注销账户按钮"; - emit exit_client(); + //emit exit_client(); emit account_cancellation(username); this->close(); } diff --git a/mainwidget.h b/mainwidget.h index 8e3704b..49d5fba 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include diff --git a/mainwidget.ui b/mainwidget.ui index ae4d1c9..c792ba4 100644 --- a/mainwidget.ui +++ b/mainwidget.ui @@ -6,19 +6,25 @@ 0 0 - 798 + 722 587 + + + 722 + 587 + + Form - 50 - 510 - 401 + 60 + 500 + 361 31 @@ -42,8 +48,8 @@ - 520 - 510 + 470 + 500 211 31 @@ -68,27 +74,30 @@ - 50 - 30 - 401 - 421 + 60 + 50 + 361 + 401 + + border-radius:20px; + - 520 - 30 - 211 - 441 + 490 + 50 + 171 + 401 - font: 12pt "Arial Black"; + font: 10pt "Arial Black"; 在线用户列表 @@ -98,11 +107,11 @@ - QListWidget { outline: none; border:1px solid white; color: #696969;} - QListWidget::Item { width: 60px; height: 40px; } - QListWidget::Item:hover { background: #FFA500; color: white; } - QListWidget::item:selected { background: #FFC0CB; color: #DC143C; } - QListWidget::item:selected:!active { background: blue; } + QListWidget { outline: none; border:1px solid white; color: #696969;border-radius:\n7px;} +QListWidget::Item { width: 60px; height: 35px; } +QListWidget::Item:hover { background: #FFA500; color: white; } +QListWidget::item:selected { background: #FFC0CB; color: #DC143C; } + /*QListWidget::item:selected:!active { background: blue; }*/ QScrollBar:vertical { @@ -206,18 +215,26 @@ QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical - 50 + 60 460 - 401 + 361 31 - + + + border-radius: +7px;padding:2px 4px; + + + + + 发送 diff --git a/protocol.cpp b/protocol.cpp index a24a9a4..e9c7602 100644 --- a/protocol.cpp +++ b/protocol.cpp @@ -117,15 +117,15 @@ QPair Protocol::data_parser(QByteArray data) return qMakePair(RESPONSE,json_data.object()); } -QByteArray Protocol::XOR_En_Decrypt(QString src) +QByteArray Protocol::XOR_En_Decrypt(QByteArray src) { QByteArray result; for(auto &i:src) - result.append(i.toLatin1() ^ cipher_word); + result.append(i ^ cipher_word); return result; } -QByteArray Protocol::Upper_Lower_En_Decrypt(QString src) +QByteArray Protocol::Upper_Lower_En_Decrypt(QString src) { QByteArray result; for(auto &i:src) @@ -155,8 +155,11 @@ QByteArray Protocol::data_encrypt(QByteArray src) QByteArray Protocol::data_decrypt(QByteArray src) { + qDebug() << QString(src); QByteArray result = XOR_En_Decrypt(src); + //qDebug() << result; result = Upper_Lower_En_Decrypt(result); + //qDebug() << result; return QByteArray::fromBase64(result); } diff --git a/protocol.h b/protocol.h index 8181b40..15179ed 100644 --- a/protocol.h +++ b/protocol.h @@ -51,7 +51,7 @@ private: explicit Protocol(QObject *parent = nullptr); ~Protocol(); QByteArray data_builder(QList &args); - QByteArray XOR_En_Decrypt(QString src); + QByteArray XOR_En_Decrypt(QByteArray src); QByteArray Upper_Lower_En_Decrypt(QString src); signals: diff --git a/signup.cpp b/signup.cpp index 516da3f..5f48a5b 100644 --- a/signup.cpp +++ b/signup.cpp @@ -22,6 +22,7 @@ Signup::Signup(QWidget *parent) : QWidget(parent), Signup::~Signup() { + emit delete ui; } diff --git a/tcpclient.cpp b/tcpclient.cpp index 2c43567..aaa47d4 100644 --- a/tcpclient.cpp +++ b/tcpclient.cpp @@ -35,6 +35,7 @@ void TCPClient::configAndrun() void TCPClient::sendToserver(QByteArray &data) { + qDebug() << data; if (socket.isOpen()) { socket.write(data);