widget.cpp #include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
qDebug()<< this->size(); //获取界面的尺寸
this->setFixedSize(380,600); //固定界面尺寸
this->setWindowTitle("小黑子app"); //设置窗口标题
this->setWindowIcon(QIcon("C:\\Users\\Administrator\\Desktop\\QQ20230915190020.png"));
QPushButton *btn1 = new QPushButton(this); //构造一个按钮并直接指定父组件
btn1->setText("登录"); //设置按钮文本内容
btn1->move(80,500);
btn1->resize(100, 40);
//构建按钮2
QPushButton *btn2 = new QPushButton(this);
btn2->setText("取消");
btn2->move(btn1->x()+150, btn1->y());
btn2->resize(100, 40);
//构建一个行编辑器并指定父组件
QLineEdit *edit1 = new QLineEdit(this);
edit1->resize(250, 50);
edit1->move(120, 350);
QLineEdit *edit2 = new QLineEdit(this);
edit2->resize(250, 50);
edit2->move(edit1->x(),edit1->y()+70);
edit1->setPlaceholderText("树脂666");
edit2->setEchoMode(QLineEdit::Password); //设置回显
//标签
QLabel *lab1 = new QLabel(this);
lab1->resize(50,50);
lab1->setStyleSheet("background-color:yellow;");
lab1->move(40, 350);
lab1->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\QQ20230915211012.png"));
lab1->setScaledContents(true);
QLabel *lab2 = new QLabel(this);
lab2->resize(50, 50);
lab2->setStyleSheet("background-color:yellow;");
lab2->move(lab1->x(), lab1->y()+70);
lab2->setPixmap(QPixmap("C:\\Users\\Administrator\\Desktop\\QQ20230915211447.png"));
lab2->setScaledContents(true);
QMovie *movie = new QMovie("C:\\Users\\Administrator\\Desktop\\QQ20230915200707.gif");
movie->start();
QLabel *lab3 = new QLabel(this);
lab3->setGeometry(0,0,600,340);
lab3->setMovie(movie);
lab3->setStyleSheet("background-color:yellow;");
//QT4版手动连接buton1信号和槽
connect(this->btn1,SIGNAL(clicked()),this,SLOT(but1_slot()));
//QT5版手动连接button2信号和槽
connect(this->btn2, &QPushButton::clicked, this, &Widget::btn2_slot);
}
Widget::~Widget()
{
delete ui;
}
void Widget::btn1_slot()
{
QMessageBox msgbox; //实例化对象
if(edit1->text()=="admin" &&edit2->text()=="123456")
{
msgbox.setIcon(QMessageBox::NoIcon);
//msgbox.setWindowTitle("QQ");
msgbox.setText("登陆成功");
msgbox.setStandardButtons(QMessageBox::Ok);
msgbox.setDefaultButton(QMessageBox::Ok);
msgbox.exec();
emit btn1_signal();
this->close();
}
else
{
QMessageBox msgBox;
int ret;
msgbox.setIcon(QMessageBox::Critical);
msgbox.setWindowTitle("QQ");
msgbox.setText("账号密码不匹配,是否重新登录?");
msgbox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msgbox.setDefaultButton(QMessageBox::Ok);
ret = msgBox.exec();
if(ret == QMessageBox::Ok)
{
edit2->clear();
}
else if(ret == QMessageBox::Cancel)
{
msgbox.close();
}
}
}
void Widget::btn2_slot()
{
QMessageBox::StandardButton ret = QMessageBox::warning( //调用静态成员函数,需要加上类名和作用域限定符
this, //父组件
//"QQ", //对话框标题
"是否确定退出登录?", //对话框文本内容
QMessageBox::Yes|QMessageBox::No, //提供的按钮
QMessageBox::Yes ); //默认按钮
//对用户点击的结果进行判断
if(ret == QMessageBox::No)
{
this->close();
}
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
#include
#include
#include
#include
#include "second.h"
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
signals:
void btn1_signal();
public slots:
void btn1_slot();
void btn2_slot();
private:
Ui::Widget *ui;
QPushButton *btn1;
QPushButton *btn2;
QLineEdit *edit1;
QLineEdit *edit2;
QLabel *lab1;
QLabel *lab2;
QLabel *lab3;
};
#endif // WIDGET_H
main.c
#include "widget.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
second.cpp
#include "second.h"
#include "ui_second.h"
second::second(QWidget *parent) :
QWidget(parent),
ui(new Ui::second)
{
ui->setupUi(this);
//窗口属性
this->setFixedSize(480,360);
this->setWindowTitle("网络聊天室");
}
second::~second()
{
delete ui;
}
void second::btn1_jumpslot()
{
this->show();
second.h}
#ifndef SECOND_H
#define SECOND_H
#include
namespace Ui {
class second;
}
class second : public QWidget
{
Q_OBJECT
public:
explicit second(QWidget *parent = nullptr);
~second();
private:
Ui::second *ui;
public slots:
void btn1_jumpslot();
};
#endif // SECOND_H