1.设计QQ的界面
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>//自定义类Widget,采用public方式继承QWidget,该类封装了图形化界面的相关操作,相当于自定义类也有了相关操作
class Widget : public QWidget
{Q_OBJECT //信号与槽的宏,若没有该宏,信号与槽不能使用public:Widget(QWidget *parent = nullptr); //构造函数声明,带默认参数~Widget();
};
#endif // WIDGET_H
main.cpp
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv); /采用QApplication 的有参构造实例化一个对象,Widget w; //采用自定义Widget的无参构造实例化对象w.show(); //该对象调用显示函数return a.exec();
}
widget.cpp
#include "widget.h"Widget::Widget(QWidget *parent) //自定义类的构造函数,在初始化列表中显式调用父类QWidget的有参构造进行初始化: QWidget(parent) //自定义中的Ui指针成员申请空间
{this->resize(800,600);this->setWindowTitle("QQ");this->setWindowIcon(QIcon("D:\\Project\\图标\\QQ.png"));QLabel *lab1=new QLabel(this);lab1->setPixmap(QPixmap("D:\\Project\\图标\\R.jfif"));lab1->resize(800,250);QLabel *lab2=new QLabel(this);lab2->setPixmap(QPixmap("D:\\Project\\图标\\3.jpg"));lab2->move(150,350);lab2->resize(100,100);QLabel *lab3=new QLabel(this);lab3->setText("账号:");lab3->resize(60,30);lab3->move(lab2->width()+lab2->x()+40,lab2->y());QLabel *lab4=new QLabel(this);lab4->setText("密码:");lab4->resize(60,30);lab4->move(lab3->x(),lab3->y()+lab3->height()+30);QLineEdit *edit1=new QLineEdit(this);edit1->resize(180,30);edit1->move(lab3->x()+lab3->width()+10,lab3->y());edit1->setStyleSheet("color:black");edit1->setAlignment(Qt::AlignLeft);edit1->setPlaceholderText("输入QQ账号");QLineEdit *edit2=new QLineEdit(this);edit2->resize(180,30);edit2->move(lab4->x()+lab4->width()+10,lab4->y());edit2->setStyleSheet("color:black");edit2->setAlignment(Qt::AlignLeft);edit2->setEchoMode(QLineEdit::Password);edit2->setPlaceholderText("输入QQ密码");QPushButton *btn1=new QPushButton(this);btn1->setText("登录");btn1->resize(80,40);btn1->move(lab4->x()+20,lab4->y()+lab4->height()+40);QPushButton *btn2=new QPushButton(this);btn2->setText("取消");btn2->resize(btn1->size());btn2->move(btn1->x()+btn1->width()+60,btn1->y());}Widget::~Widget()
{
}