思维导图
作业
源代码
#include "widget.h"
#include "ui_widget.h"
#include<QDebug>
#include<QPushButton>
#include<QLineEdit>
#include<QLabel>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置界面的尺寸
this->resize(400,500);
this->setWindowFlag(Qt::FramelessWindowHint);//去除窗口头部
this->setStyleSheet("background-color:pink");
//this->setStyleSheet("background-color:");
//有参构造两个按钮(登陆和取消)
QPushButton *btn1 = new QPushButton("登陆",this);
btn1->resize(125,40);
btn1->move(70,350);
btn1->setFont(QFont("华文行楷",18,0));
btn1->setStyleSheet("background-color:skyblue;");
btn1->setIcon(QIcon("C:\\Users\\黑色世界\\Desktop\\icon"));
QPushButton *btn2 = new QPushButton("取消",this);
btn2->resize(btn1->size());
btn2->move(btn1->x()+btn1->width()+20,btn1->y());
btn2->setFont(QFont("华文行楷",18,0));
btn2->setStyleSheet("background-color:skyblue;");
btn2->setIcon(QIcon("C:\\Users\\黑色世界\\Desktop\\icon"));
//设置账号和密码的行编辑器
QLineEdit *edit1 = new QLineEdit;
edit1->setParent(this);
edit1->resize(180,40);
edit1->move(140,180);
edit1->setStyleSheet("background-color:white");
edit1->setAlignment(Qt::AlignCenter);
edit1->setPlaceholderText("请输入账号");
this->edit2 = new QLineEdit(this);
edit2->resize(edit1->size());
edit2->move(edit1->x(),edit1->y()+edit1->height()+20);
edit2->setStyleSheet("background-color:white");
edit2->setAlignment(Qt::AlignCenter);
edit2->setPlaceholderText("请输入密码");
//设置账号和密码两个标签
QLabel *lab1 = new QLabel("账号:",this);
lab1->resize(45,40);
lab1->move(90,180);
lab1->setFont(QFont("华文行楷",15,0));
QLabel *lab2 = new QLabel("密码:",this);
lab2->resize(lab1->size());
lab2->move(lab1->x(),lab1->y()+lab1->height()+20);
lab2->setFont(QFont("华文行楷",15,0));
//链接登陆按钮与槽函数
QObject::connect(
btn1,
&QPushButton::clicked,
this,
&Widget::btn1_slot
);
//链接取消按钮与槽函数
QObject::connect(
btn2,
&QPushButton::clicked,
this,
&Widget::btn2_slot
);
}
//登陆按钮对应的槽函数
void Widget::btn1_slot()
{
if(0)
{
qDebug() << "登陆成功";
this->close();
}
else
{
qDebug() << "登陆失败";
edit2->clear();
}
}
//取消按钮对应的槽函数
void Widget::btn2_slot()
{
this->close();
emit my_signal();
}
Widget::~Widget()
{
delete ui;
}
头文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLineEdit>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
signals:
void my_signal();
public slots:
void btn1_slot();
void btn2_slot();
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
QLineEdit *edit2;
};
#endif // WIDGET_H