新乡网站搜索引擎优化,泰州企业网站建设,wordpress怎样安装主题,手机模板网站下载main.cpp文件 argc#xff1a;命令行参数个数。*argv[ ]#xff1a;每一个命令行参数的内容。main的形参就是命令行参数。QApplication a(argc, argv)
编写一个Qt的图形化界面程序#xff0c;一定需要QApplication对象。
widget w;
在创建项目的时候#xff0c;勾选widg…main.cpp文件 argc命令行参数个数。*argv[ ]每一个命令行参数的内容。main的形参就是命令行参数。QApplication a(argc, argv)
编写一个Qt的图形化界面程序一定需要QApplication对象。
widget w;
在创建项目的时候勾选widget创建了一个widget的类。
w.show();
创建一个控件对象并显示出来。.show()方法让控件显示出来.hide()方法让控件隐藏这俩种方法都是widget的父类Qwidget所提供的。
exec()表示让程序执行起来。
当前Qt中的exec和Linux中的exec没有任何关系只是名字相同这样的设定在计算机中是比较常见的同一种术语在不同的场景表示的含义不一样需要结合上下文来理解。 widget.h文件 ifndef WIDGET_Hdefine WIDGET_H
header guard保证头文件只被包含一次更推荐写成#pragma once
class widget;声明一个类public Qwidget;创建项目时选择的父类
这里的父类是Qt SDK内置的要想使用这个类需要包含对应的头文件#includeQwidget.h。 Qt的设定就是使用Qt内置的类包含的头文件的名字就是和类名一致的当然并不是用到的所有的Qt的类都需要显示包含头文件。在C中头文件可能是“间接包含的”就比如引入了a.h在a.h中又包含了b.h文件此时就相当于把a.h和b.h都包含了。
【注意】在后续写Qt代码的原则是一个Qt的类先进行使用如果可以直接使用说明对应的头文件已经被间接包含过了无需显式包含而如果这个类提示找不到定义则需要手动的显式的把对应的头文件给包含。 Q_OBJECT
Q_OBJECT是一个Qt内置的宏宏和本质就是文本替换而Q_OBJECT展开之后会生成一大堆的代码。 在Qt中有一个非常核心的机制“信号和槽”如果某个类向使用“信号和槽”就需要引入Q_OBJECT这个宏。 QWidge *parent nullptr;
在Qt中引入了“对象树”机制。此时如果创建一个Qt对象就可以将这个对象挂到对象树上然后往树上挂的时候需要值得“父节点”。这于数据结构中的“树”类似一个节点可以有N个节点一个节点只能有一个父节点此处对象树就是一个普通的N叉树非二叉树。 Ui::Widget *ui;和form file密切相关。 widget.cpp文件 widget.h 创建项目生成的头文件ui_widget.h form file 被qmake生成的头文件 把form file生成的界面和当前widget关联起来。
widget.ui文件 当直接双击ui文件的时候Qt Creator会调用Qt Designer打开ui文件此时就会打开图形化的界面编辑器。 中间这部分是生成的程序窗口左边部分是Qt中内置的控件拖拽左侧的控件到程序窗口可以创建具体的界面。右边部分是编辑属性每一个控件都有很多的属性就影响到控件具体的行为。
点击左侧编辑按钮里面显式的就是.ui文件的本体内容。 这个格式称为xml格式xml和html非常类似都是使用成对的标签来表示数据。
html虽然也是通过标签来表示的但是html的标签都是固定的每一个标签的含义有一个专门的标准委员会约定所有的浏览器也是按照同样的规则来解释的。
xml这里的标签有哪些接口都表示什么含义这些都是可以自定义的。此处看到的这些标签就是开发Qt的程序员来定义的。这里的标签含义具体是什么内容不需要关注只要知道ui文件本质上是一个xml格式即可。
此处约定的xml标签的含义与Linux网络原理中的自定义应用层协议类似。
在Qt中使用xml文件就是描述程序的界面是什么样子的然后qmake会调用相关的工具依据这个xml文件生成一些C代码。从而把完整的界面构造出来。
.pro文件 这是Qt项目的工程文件也是qmake工具构建时候的重要依据。 要引入的Qt的模板后续可能会被修改。 按照C11的标准进行编译 描述了当前项目中参与构建的文件都有哪些编译器需要编译哪些文件这个地方不需要手动修改Qt creator会自动维护。
.pro文件类似于Linux中的make file文件。
Qt creator将过程中编译的细节都封装好不需要过多的关注只需要点击运行按钮就可以直接编译通过。
总结
上述讲到的.h、.cpp、.pro、.ui文件都是源代码如果编译运行Qt项目构建过程还会生成一些中间文件。 打开文件资源管理器看看项目对应的目录在运行一次程序之后就会在项目目录并列的地方多出来一个“build_xxx”目录这个目录里面就是该项目运行过程中生成的一些临时文件。 makefile编译Qt程序还是会用到makefile只不过这个makefile不需要手动写而是qmake自动生成的。 ui_widget.h就是widget.ui xml生成的.h文件。