1.QT工程项目各文件初始程序的注释
头文件:
#ifndef WIDGET_H
#define WIDGET_H
#include //QWidget类所在的头文件,父类头文件
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; } //命名空间的声明
QT_END_NAMESPACE
//定义属于自己的类
class Widget : public QWidget
{
Q_OBJECT //信号与槽的对象
public:
Widget(QWidget *parent = nullptr); //构造函数的声明,有一个默认参数的形参
~Widget();
private:
Ui::Widget *ui; //后期可以通过ui指针找到ui界面上拖拽出来的组件
};
#endif // WIDGET_H
源文件
#include "widget.h" //自己的头文件
#include "ui_widget.h" //ui界面对应的头文件
Widget::Widget(QWidget *parent) //构造函数的定义
: QWidget(parent) //显性调用父类的构造函数完成对子类从父类继承下来成员的初始化工程
, ui(new Ui::Widget) //对自己类中的指针成员开辟空间
{
ui->setupUi(this); //给拖拽出来的组件实例化空间
}
Widget::~Widget() //析构函数的定义
{
delete ui; //释放ui指针的内存
}
主程序
#include "widget.h" //图形化界面的头文件
#include //应用程序的头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //实例化一个应用程序的对象,调用的是有参构造
Widget w; //在栈区实例化自定义类的对象
w.show(); //调用show函数,展示图形化界面,该函数是父类提供的,直接用即可
return a.exec(); //为了阻塞界面不被关闭,等待相关事件发生
//等待信号与槽,事件处理,等待用户操作
}
2.QT界面的创建
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowTitle("聊天室"); //设置窗口的标题
this->setWindowIcon(QIcon("C:\\Users\\axdn1\\Desktop\\icon\\wodepeizhenshi.png")); //设置窗口的icon
this->setFixedSize(640,480); //固定窗口大小
QLabel *lab1=new QLabel(this);
lab1->resize(40,40); //设置标签大小
lab1->move(160,280); //调整标签位置
lab1->setPixmap(QPixmap("C:\\Users\\axdn1\\Desktop\\icon\\userName.jpg")); //设置标签图标
lab1->setScaledContents(true); //设置图片自适应
QLabel *lab2=new QLabel(this);
lab2->resize(lab1->size());
lab2->move(lab1->x(),lab1->y()+50);
lab2->setPixmap(QPixmap("C:\\Users\\axdn1\\Desktop\\icon\\passwd.jpg"));
lab2->setScaledContents(true);
QLabel *lab3=new QLabel(this);
lab3->resize(640,240);
lab3->move(0,0);
lab3->setPixmap(QPixmap("C:\\Users\\axdn1\\Desktop\\icon\\logo.png"));
lab3->setScaledContents(true);
QLineEdit *edit1= new QLineEdit(this);
edit1->setPlaceholderText("QQ/手机/邮箱"); //设置编辑器的占位文本
edit1->resize(300,40); //设置尺寸
edit1->move(lab1->x()+80,lab1->y()); //移动位置
QLineEdit *edit2= new QLineEdit(this);
edit2->setPlaceholderText("密码"); //设置编辑器的占位文本
edit2->resize(edit1->size()); //设置尺寸
edit2->move(lab2->x()+80,lab2->y()); //移动位置
edit2->setEchoMode(QLineEdit::Password); //设置回显模式
QPushButton *btn1=new QPushButton(this);
btn1->setText("登录"); //给按钮设置文本内容
btn1->resize(100,40); //给按钮重新设置大小
btn1->move(400,400); //调整按钮位置
btn1->setIcon(QIcon("C:\\Users\\axdn1\\Desktop\\icon\\login.png"));
QPushButton *btn2=new QPushButton(this);
btn2->setText("取消");
btn2->resize(btn1->size());
btn2->move(btn1->x()+120,btn1->y());
btn2->setIcon(QIcon("C:\\Users\\axdn1\\Desktop\\icon\\cancel.png"));
}
Widget::~Widget()
{
delete ui;
}
3.思维导图