目录
1、实现图形化界面
cpp
#include "mywnd.h"
Mywnd::Mywnd(QWidget *parent)
: QMainWindow(parent)
{
this->setFixedSize(800,600); //设置固定尺寸
this->setWindowTitle("Widget"); //设置窗口标题
this->setWindowIcon(QIcon("D:\\qt23062\\day8\\qq.png")); //设置窗口图标
//实例化标签
QLabel* lab1=new QLabel(this);
lab1->setPixmap(QPixmap("D:\\qt23062\\day8\\logo.png")); //设置图片
lab1->setScaledContents(true); //设置图片自动适应大小
lab1->resize(800,270); //重新设置尺寸
//标签2
QLabel* lab2=new QLabel(this);
lab2->setPixmap(QPixmap("D:\\qt23062\\day8\\userName")); //设置图片
lab2->setScaledContents(true); //设置图片自动适应大小
lab2->resize(60,60); //重新设置尺寸
lab2->move(200,300);
//标签3
QLabel* lab3=new QLabel(this);
lab3->setPixmap(QPixmap("D:\\qt23062\\day8\\passwd")); //设置图片
lab3->setScaledContents(true); //设置图片自动适应大小
lab3->resize(60,60); //重新设置尺寸
lab3->move(lab2->x(),lab2->y()+90);
//行编辑器
QLineEdit* edit1=new QLineEdit("admin",this);
edit1->move(lab2->x()+75,lab2->y());
edit1->resize(360,60);
QLineEdit* edit2=new QLineEdit("123456",this);
edit2->move(lab3->x()+75,lab3->y());
edit2->resize(360,60);
edit2->setEchoMode(QLineEdit::Password); //设置回显模式
//按钮
QPushButton *btn1=new QPushButton(QIcon("D:\\qt23062\\day8\\login.png"),"登录",this);
btn1->move(edit2->x()+50,edit2->y()+100);
btn1->resize(110,70); //重新设置尺寸
QFont font = btn1->font();
font.setPointSize(16); // 设置字体大小为16像素
btn1->setFont(font);
QPushButton *btn2=new QPushButton(QIcon("D:\\qt23062\\day8\\cancel.png"),"取消",this);
btn2->move(btn1->x()+150,btn1->y());
btn2->resize(110,70); //重新设置尺寸
QFont font1 = btn2->font();
font1.setPointSize(16); // 设置字体大小为16像素
btn2->setFont(font1);
}
Mywnd::~Mywnd()
{
}
2、将工程文件进行注释
cpp
QT += core gui network
#引入QT工程所需的类库core是核心库,gui是图形开发相关类库
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#超过4.0版本自动加上widgets类库
CONFIG += c++11
#支持C++11后的版本
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
#对源文件进行管理
SOURCES += \
main.cpp \
mywnd.cpp
#对头文件进行管理
HEADERS += \
mywnd.h
#对ui界面文件进行管理
FORMS += \
mywnd.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
cpp
#ifndef MYWND_H
#define MYWND_H //防止文件重复包含
#include <QWidget> //父类的头文件
QT_BEGIN_NAMESPACE
namespace Ui { class MyWnd; } //声明ui界面对应头文件中的命名空间
QT_END_NAMESPACE
//自定义自己的界面类,公共继承自QWidget,父类中重写了绘制事件处理函数
class MyWnd : public QWidget
{
Q_OBJECT //信号与槽的元对象,没有这个对象,信号与槽就不能使用了
public:
MyWnd(QWidget *parent = nullptr); //构造函数的声明,并且有一个带默认参数的形参
~MyWnd(); //析构函数的声明
private:
Ui::MyWnd *ui; //可以通过该指针调用ui界面上拖拽出来的组件
};
#endif // MYWND_H
cpp
#include "mywnd.h"
#include "ui_mywnd.h"
//构造函数的定义
MyWnd::MyWnd(QWidget *parent)
: QWidget(parent) //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作
, ui(new Ui::MyWnd) //给自己类中的指针成员初始化空间,ui界面中拖拽出来的组件,就在这个对象中
{
ui->setupUi(this); //调用Ui::MyWnd类里面的成员函数,给拖拽的组件实例化空间,并设置相关属性
}
//析构函数的定义
MyWnd::~MyWnd()
{
delete ui; //释放指针空间
}
cpp
#include "mywnd.h" //引入自定义图形化界面类的头文件
#include <QApplication> //引入应用程序类的头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //使用应用程序类,实例化一个应用程序的对象
MyWnd w; //用自定义的图形化界面类实例化一个对象
w.show(); //调用show函数展示界面,父类提供的,可以展示自己的组件,以自己作为父组件的所有子组件也会被展示出来
return a.exec(); //阻塞等待应用程序,防止应用程序结束,等待用户操作、等待信号与槽、等待事件发生
}