QTday1基础

作业

一、做个QT页面

复制代码
#include "hqyj.h"

HQYJ::HQYJ(QWidget *parent)//构造函数定义
    : QWidget(parent)//显性调用父类的有参构造
{
    //主界面设置
    this->resize(540,410);//设置大小
    this->setFixedSize(540,410);//设置固定大小
    this->setWindowIcon(QIcon("C:\\Users\\asus\\Documents\\Tencent Files\\2088219652\\FileRecv\\icon\\wodepeizhenshi"));//设置主界面左上角图标
    this->setWindowTitle("阿瑞乱聊");//设置主界面名称
    //主页标签
    QLabel *lab1 = new QLabel(this);//账号
    QLabel *lab2 = new QLabel(this);//密码
    QLabel *lab3 = new QLabel(this);//大图
    //设置账号标签属性
    lab1->resize(50,50);//设置大小
    lab1->move(100,200);//设置位置
    lab1->setPixmap(QPixmap("C:\\Users\\asus\\Documents\\Tencent Files\\2088219652\\FileRecv\\icon\\userName"));//设置图标
    lab1->setScaledContents(true);//设置自适应
    //设置密码标签属性
    lab2->resize(lab1->size());//设置大小
    lab2->move(lab1->x(),lab1->y()+70);//设置位置
    lab2->setPixmap(QPixmap("C:\\Users\\asus\\Documents\\Tencent Files\\2088219652\\FileRecv\\icon\\passwd"));//设置图标
    lab2->setScaledContents(true);//设置自适应
    //设置主页图片标签属性
    lab3->resize(520,190);//设置大小
    lab3->move(10,0);//设置位置
    lab3->setPixmap(QPixmap("C:\\Users\\asus\\Documents\\Tencent Files\\2088219652\\FileRecv\\icon\\logo"));/设置图标
    lab3->setScaledContents(true);//设置自适应
    //主页行编辑器
    QLineEdit *edit1 = new QLineEdit(this);//账号行编辑器
    QLineEdit *edit2 = new QLineEdit(this);//密码行编辑器
    edit1->setPlaceholderText("QQ号/手机/邮箱");//设置账号默认占位
    edit2->setPlaceholderText("密码");//设置密码默认占位
    edit1->resize(300,50);//设置大小
    edit2->resize(edit1->size());//设置大小
    edit1->move(lab1->x()+60,lab1->y());//设置位置
    edit2->move(lab2->x()+60,lab2->y());//设置位置
    edit2->setEchoMode(QLineEdit::Password);//设置回显模式
    //主页按键
    QPushButton *bnt1 = new QPushButton(QIcon("C:\\Users\\asus\\Documents\\Tencent Files\\2088219652\\FileRecv\\icon\\login"),"登录",this);//用图片,文本,父组件实例化登录按键
    QPushButton *bnt2 = new QPushButton(QIcon("C:\\Users\\asus\\Documents\\Tencent Files\\2088219652\\FileRecv\\icon\\cancel"),"取消",this);//用图片,文本,父组件实例化取消按键
    bnt1->resize(70,50);//设置大小
    bnt2->resize(bnt1->size());//设置大小
    bnt1->move(edit2->x()+40,edit2->y()+70);//设置位置
    bnt2->move(bnt1->x()+90,bnt1->y());//设置位置

}

HQYJ::~HQYJ()//析构函数定义
{
}

二、QT工程默认创建各行意思

.pro

复制代码
QT       += core gui
#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

头文件

复制代码
//防止文件重复包含
#ifndef MYWND_H
#define MYWND_H

#include <QWidget>//QWidget类所在的头文件

//ui文件中命名空间声明
QT_BEGIN_NAMESPACE
namespace Ui { class MyWnd; }
QT_END_NAMESPACE

//自己的公共继承于QWidget类的类对象
class MyWnd : public QWidget
{
    Q_OBJECT//信号与槽的元对象

public:
    MyWnd(QWidget *parent = nullptr);//构造函数声明,带一个默认参数
    ~MyWnd();//析构函数声明

private:
    Ui::MyWnd *ui;//指向ui文件的指针,可以通过它调用ui文件里的代码
};
#endif // MYWND_H

主程序

复制代码
#include "mywnd.h"//图形化界面的头文件

#include <QApplication>//应用程序的头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//应用程序实例化,用有参构造
    MyWnd w;//自定义类的对象在栈区实例化
    w.show();//调用show函数,展示图形化界面
    return a.exec();//阻塞,等待信号与槽、事件处理、等待用户操作
}

.源文件

复制代码
#include "mywnd.h"//图形化界面的头文件
#include "ui_mywnd.h"//ui界面的头文件

MyWnd::MyWnd(QWidget *parent)//自定义的类的构造函数的定义
    : QWidget(parent)//显性调用父类的有参构造
    , ui(new Ui::MyWnd)//给类中ui指针开辟空间
{
    ui->setupUi(this);//将指针的父组件设为本类表示的组件
                      //给拖出来的组件实例化空间
}

MyWnd::~MyWnd()//析构函数的定义
{
    delete ui;//回收ui指针空间
}

思维导图

相关推荐
递归不收敛7 分钟前
Conda 常用命令汇总(新手入门笔记)
笔记·conda
前端橙一陈43 分钟前
Salesforce Developer Edition(开发者版) 搭建测试环境
经验分享·笔记·其他
电子小子洋酱1 小时前
BearPi小熊派 鸿蒙入门开发笔记(4)
笔记·华为·harmonyos
摇滚侠1 小时前
Spring Boot 3零基础教程,WEB 开发 通过配置类代码方式修改静态资源配置 笔记32
java·spring boot·笔记
聪明的笨猪猪3 小时前
Java JVM “内存(1)”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
_dindong3 小时前
Linux网络编程:Socket编程TCP
linux·服务器·网络·笔记·学习·tcp/ip
摇滚侠4 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 属性优先级 行内写法 变量选择 笔记42
java·spring boot·笔记
摇滚侠4 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 总结 热部署 常用配置 笔记44
java·spring boot·笔记
rechol5 小时前
汇编与底层编程笔记
汇编·arm开发·笔记
lzj_pxxw6 小时前
嵌入式开发技巧:舍弃标志位,用宏定义函数实现程序单次运行
笔记·stm32·单片机·嵌入式硬件·学习