Qt5工程文件详解及使用方法

7 篇文章 0 订阅
本文详细介绍了如何在Qt中使用QMainWindow创建主窗口,包括类声明、文件组织、控件添加与资源导入,以及如何通过自定义类实现窗口切换和事件重写。重点讲解了主窗口的创建、UI设计与信号槽机制的应用。
摘要由CSDN通过智能技术生成

一、工程自带文件

QMainWindow基类窗口为例,当前工程下的文件:
创建的类名Class name为:myMainWindow
.h文件声明函数
具体代码写在类名.cpp文件里(决定窗口逻辑和界面)
main.cpp一般不用管

1.【main.cpp】:
  用于执行整个主窗口
    1.初始化应用程序,对象为a;
    1.1 整个文件代码结束时,最后要返回a.exec(),目的是:阻塞,等待用户操作。
  2.实例化主窗口对象,对象为w,窗口类名为自定义的Class name;
    2.1 实例化对象时,自动调用对象的构造函数和析构函数
      主窗口的具体内容,全写在构造函数中。
  3.显示窗口
    show():显示
    hide():隐藏

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    myMainWindow w;
    w.show();
    return a.exec();
}



  

2.【窗口类名.cpp】:
  用于:定义主窗口的构造函数和析构函数,决定主窗口的具体内容
  其中:
    this->  :主窗口中
    ui->    :UI中

#include "mymainwindow.h"
#include "ui_mymainwindow.h"

myMainWindow::myMainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::myMainWindow)
{
    ui->setupUi(this);
}

myMainWindow::~myMainWindow()
{
    delete ui;
}


  

3.【窗口类名.h】:
  用于声明

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H


  

4.【窗口类名.ui】:
    直接添加控件,

添加之后,在ui界面右上角更改每个控件的对象名,
    在.cpp文件内通过: ui->对象名  访问每个控件,
        ui->对象名->QT助手内的对应控件的某功能函数() 实现控件某功能

在这里插入图片描述

5.【Resources资源文件】:
  
先把资源文件包复制到QT工程目录文件下
  
  
  
1.创建项目
在这里插入图片描述
在这里插入图片描述

2.把资源包导入到此项目内

在这里插入图片描述
在这里插入图片描述

3.选中所有想要导入的文件,并“构建”
在这里插入图片描述
  
  

把资源添加到控件内:

ui中点击控件,
右下角找到icon,选择资源
icon开头的都是资源属性设置
  
  
  

二、自定义类文件

生成:
     自定义类名.cpp
     自定义类名.h
使用场景:
    1.多个窗口 (点击主窗口某个选项,进入下个界面)
        但是main.cpp依然只有主窗口的对象,不会出现新窗口
        新窗口的实例化对象写在主窗口.cpp内,
        新窗口与主窗口的切换通过信号收发实现
    2.重写事件(重新自定义系统函数库函数)

具体写法在后文讲解






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值