Qt——基础操作(快捷键、工程文件,按钮对象树)

Qt概述

Qt:是一个跨平台的C++图形用户界面应用程序框架

  • 完全面向对象的,容易扩展,并允许真正的组件开发

Qt快捷键

  • 注释:Ctrl+/

  • 运行:Ctrl+r

  • 编译:Ctrl+b

  • 字体缩放:Ctrl+鼠标滚轮

  • 查找:Ctrl+f

  • 整行移动:Ctrl+shift+上下移动键

  • 帮助文档:F1

  • 自动对齐:Ctrl+i

  • 同名文件.h和.app文件之间的切换:F4

  • 帮助文档

    • 第一种方式 F1
    • 第二种 左侧按钮
    • 第三种 C:\Qt\Qt5.6.0\5.6\mingw49_32\bin

Qt模块

  • core:源代码
  • GUI:界面支持
  • widgets:窗体支持
  • network:网络模块
  • sql:数据库模块.
  • Serial:串口编程
  • multimedia:多媒体(音频、视频、摄像头)

创建QT程序

命名规范

  • 类名 首字母大写,单词和单词之间首字母大写
  • 函数名 变量名称 首字母小写,单词和单词之间首字母大写

main.cpp

#include "widget.h"
#include <QApplication>  // 包含一个应用程序类的头文件

// main程序入口,argc命令行变量的数量,argv命令行变量的数量
int main(int argc, char *argv[])
{
    // a应用程序对象,在qt中,应用程序对象有且仅有一个
    QApplication a(argc, argv);
    
    // 窗口对象,通过类来实例化一个窗口对象,Widget的父类为QWidget
    Widget w;
    
    // 窗口对象,默认不显示,只有调用show方法才显示
    w.show();
    
    // 让应用程序a,进入消息循环
    // 消息循环,让当前代码阻塞到这行,点左上角的×才退出循环,
    return a.exec();
}

运行结果为:
在这里插入图片描述

  • 创建第一个Qt程序

    1. 点击创建项目后,选择项目路径以及 给项目起名称
    2. 名称 - 不能有中文 不能有空格
    3. 路径 - 不能有中文路径
    4. 默认创建有窗口类,myWidget,基类有三种选择: QWidget 、QMainWindow、QDialog
  • main函数

    1. QApplication a 应用程序对象,有且仅有一个
    2. myWidget w实例化窗口对象,默认不会显示出来,需要调用show方法显示
    3. w.show()调用show函数 显示窗口
    4. return a.exec() 让应用程序对象进入消息循环机制中,代码阻塞到当前行

工程文件 ~project.pro

在工程文件中,除非你知道你所要添加的是什么,否则不要添加任何东西,注释也不要添加。

工程目录为

#-------------------------------------------------
#
# Project created by QtCreator 2018-01-05T09:31:24
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = 01_FirstProject
TEMPLATE = app

 
SOURCES += main.cpp\
        mywidget.cpp \
    mypushbutton.cpp

HEADERS  += mywidget.h \
    mypushbutton.h

  • QT += core gui
    Qt包含的模块,添加核心组件

  • greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    // 大于4版本以上 包含 widget模块

  • TARGET = 01_FirstProject
    // target:目标 生成的.exe程序的名称
    // 想换一个文件名只需把 = 后面的名称改了之后重新运行,重启后不会删除原来的而是创建一个新的名字为你的命名

  • TEMPLATE = app
    // TEMPLATE模板 应用程序模板 Application

  • app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。

  • lib - 建立一个库的makefile。

  • vcapp - 建立一个应用程序的VisualStudio项目文件。

  • vclib - 建立一个库的VisualStudio项目文件。

  • subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

  • SOURCES += main.cpp\
    //源文件 mywidget.cpp
    // 将文件添加到管理文件

  • HEADERS += mywidget.h
    //头文件

头文件


#include <QWidget> //包含头文件 QWidget 窗口类

class myWidget : public QWidget  // myWidget继承QWidget
{
    Q_OBJECT // Q_OBJECT宏,允许类中使用信号和槽的机制

public:
    myWidget(QWidget *parent = 0); //构造函数
    ~myWidget(); //析构函数
};

#endif // MYWIDGET_H

按钮创建QPushButton

  1. #include < QPushButton > //按钮控件的头文件
  2. 创建按键:QPushButton * 按键指针 = new QPushButton
  3. 显示按钮:
    • show() // 调用show方法来显示窗口,但是他是以顶层的方式来弹出窗口
    • setParent(this)

设置按钮的参数:

  • 设置按钮内容:按钮->setText(“要显示的内容”)
  • 设置按钮位置:按钮->move(a,b)
  • 重新制定按钮大小:按钮->resize(a,b)
    设置窗口的参数:(按钮也可以调用下列方法)
  • 重置窗口大小:resize(600,400);
  • 设置固定窗口大小:setFixedSize(a,b)(生成的窗口是可以拖拽改变大小的,如果不想让他改变可以调用该方法)
  • 设置窗口标题:setWindowTitle("标题内容")

#include "mywidget.h"
#include <QPushButton> //按钮控件的头文件

myWidget::myWidget(QWidget *parent): QWidget(parent)
{
    //创建一个按钮
    QPushButton * btn = new QPushButton;
    btn->show(); //show以顶层方式弹出窗口控件,就是这个show会单独一个窗口

    //让btn对象 依赖在 myWidget窗口中
    btn->setParent(this);
    //显示文本
    btn->setText("第一个按钮");
    

旁边的小窗口就是以顶层方式弹出的窗口,它不会依附于主函数的大窗口。
在这里插入图片描述依附于大窗口并显示文本的按钮运行结果:
在这里插入图片描述

  • 也可以直接创建依附于主窗口的按钮
    QPushButton * 名 = new QPushButton("按钮上显示的内容" , this )
 //创建第二个按钮 按照控件的大小创建窗口
    QPushButton * btn2 = new QPushButton("第二个按钮",this);
    //移动btn2按钮
    btn2->move(100,100);
    // 使第二个按钮的位置在(100,,100)的位置

    //重新制定按钮大小
    btn2->resize(50,50);

    //重置窗口大小
    resize(600,400);

    //设置固定窗口大小
    setFixedSize(600,400);

    //设置窗口标题
    setWindowTitle("大大的窗口");

窗口标题会在这:
在这里插入图片描述


对象树

当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。

这相当于,在创建QObject对象时,可以提供一个其父对象,我们创建的这个QObject对象会自动添加到其父对象的children()列表。当父对象析构的时候,这个列表中的所有对象也会被析构。(注意,这里的父对象并不是继承意义上的父类!)

当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。
一定程度上简化了内存回收机制

Qt窗口坐标体系

坐标体系:
左上角为原点(0,0),X向右增加,Y向下增加。
在这里插入图片描述

对于嵌套窗口,其坐标是相对于父窗口来说的。

标签控件:QLabel
单行输入框:QLineEdit.
按钮控件:QPushButton.

当行输入框

头文件:#include <QLineEdit>
项目模块:QT += widgets

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值