代码:
widget头文件:
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
#include
#include
#include
#include
#include
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
signals:
void my_signal();
private:
void login_slot();
QLineEdit *lineEdit1;
QLineEdit *lineEdit2;
};
#endif // WIDGET_H
form头文件:
#ifndef FORM_H
#define FORM_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Ui {
class Form;
}
class Form : public QWidget
{
Q_OBJECT
public:
explicit Form(QWidget *parent = nullptr);
~Form();
private:
Ui::Form *ui;
public slots:
void form_slot();
};
#endif // FORM_H
主函数:
#include "widget.h"
#include "form.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
Form c;
QObject::connect(&w,&Widget::my_signal,&c,&Form::form_slot);
return a.exec();
}
widget:
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//设置窗口名称
this->setWindowTitle("CenZywush聊天室");
//设置窗口图标
this->setWindowIcon(QIcon(":\\icon\\2.png"));
//设置窗口大小
this->setFixedSize(550,460);
//定义图片1
QLabel *label1=new QLabel(this);
//自适应设置的大小
label1->setScaledContents(true);
label1->resize(550,200);
QPixmap a(":/icon/6.png");
label1->setPixmap(a);
QLabel *label2=new QLabel(this);
label2->setScaledContents(true);
label2->resize(40,40);
label2->move(120,230);
QPixmap b(":/icon/userName.jpg");
label2->setPixmap(b);
QLabel *label3=new QLabel(this);
label3->setScaledContents(true);
label3->resize(40,40);
label3->move(120,320);
QPixmap c(":/icon/passwd.jpg");
label3->setPixmap(c);
//定义按钮
QPushButton *btn1 = new QPushButton(this);
btn1->setText("登录");
btn1->resize(QSize(100,45));
btn1->move(280,400);
//btn1->setEnabled(false);
btn1->setIcon(QIcon(":/icon/login.png"));
QPushButton *btn2 = new QPushButton(this);
btn2->setText("取消");
btn2->resize(QSize(100,45));
btn2->move(390,400);
//btn2->setEnabled(false);
btn2->setIcon(QIcon(":/icon/cancel.png"));
lineEdit1 = new QLineEdit(this);
lineEdit1->setPlaceholderText("QQ号码/手机/邮箱");
lineEdit1->setMaxLength(100);
lineEdit1->setGeometry(220, 230, 220, 50);
QFont font1;
font1.setPointSize(15);
lineEdit1->setFont(font1);
lineEdit2 = new QLineEdit(this);
lineEdit2->setPlaceholderText("密码");
lineEdit2->setMaxLength(100);
lineEdit2->setGeometry(220, 320, 220, 50);
QFont font2;
font2.setPointSize(15);
lineEdit2->setFont(font2);
lineEdit2->setEchoMode(QLineEdit::Password);
connect(btn1,&QPushButton::clicked,this,&Widget::login_slot);
QObject::connect(btn2, SIGNAL(clicked()), this, SLOT(close()));
}
Widget::~Widget()
{
}
void Widget::login_slot()
{
QString username=lineEdit1->text();
QString passwd=lineEdit2->text();
if (username == "admin" && passwd == "123456")
{
qDebug()<<"登录成功";
emit my_signal();
this->close();
}
else
{
qDebug()<<"登录失败";
lineEdit2->clear();
}
}
form:
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
this->setWindowTitle("CenZywush聊天室");
this->setWindowIcon(QIcon(":\\icon\\2.png"));
this->setFixedSize(550,460);
QLabel *label1=new QLabel(this);
//自适应设置的大小
label1->setScaledContents(true);
label1->resize(550,200);
label1->move(0,125);
QPixmap a(":/icon/b36fdabb1b8f2e28eec79d6c3a9b9b7a.png");
label1->setPixmap(a);
}
Form::~Form()
{
delete ui;
}
void Form::form_slot()
{
Form::show();
}
思维导图: