QT:常用类与组件
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()
{
}