1.第一个QT程序
2024-10-18 07:10:40
第一个QT程序
new->Application->Qt Widgets Application
创建一个Qt窗口应用.
创建类的时候,会先创建一个顶层窗口,有一个下拉框.
QWidget
: QWidget类是所有用户界面对象的基类.QMainWindow和QDialog都是QWidget的子类。QMainWindow
: QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。QDialog
: QDialog类是对话框窗口的基类。
在这里我选择了QWidget,不使用ui.
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();
}
应用程序类QApplication
在新创建的文件main.cpp
中,main()
创建了对象QApplication
.
QApplication
:应用程序类,在每个QT程序中,有且只有一个.
窗口拖拽实现:
当你用鼠标拖拽窗口顶部时,窗口接收到了事件
的发生.
捕捉到事件后,应用程序类做一些默认的处理.
最终通过应用程序类QApplication
完成.
窗口类MyWidget
w.show()
: 显示窗口
窗口类创建出来默认是不显示的.
进入事件循环 a.exec()
- a.exec()
走到了后台,进行消息循环. - return a.exec();
相当于把程序运行交给Qt处理,进入程序的循环状态。 - return 0;
程序就直接退出了,不能达到显示的效果.
头文件
#include "mywidget.h"
#include <QApplication>
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT //如果使用信号槽,必须添加这个宏.
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
};
#endif // MYWIDGET_H
在这段代码里面我们可以看到:
- 包含头文件
<QWidget>
- 自定义
MyWidget
继承基类QWidget
3.宏Q_OBJECT
QApplication
文件Demo_pro
对整个项目进行管理.
//当前项目用到的一些模块
QT += core gui
//兼容以前的版本
//Qt4没有widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
//生成的应用程序的名字
TARGET = Demo
//指定生成的makefile类型
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
CONFIG += c++11
//源文件
SOURCES += \
main.cpp \
mywidget.cpp
//头文件
HEADERS += \
mywidget.h
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
我怎么知道我用到的窗口属于哪个类?
例如,我这个项目只用到了MyWidget
类.
右键类名MyWidget
,Follow Symbol Under Cursor
,看到继承的基类是QWidget
.
按F1,获得页面
QWidget Class
Header:
#include <QWidget>
qmake:
QT += widgets
最新文章
- LeetCode[5] 最长的回文子串
- LeetCode-53-Maximum Subarray
- <;<;<; Oracle表空间创建、修改、删除基本操作
- 写在OpenFire
- iOS阶段学习第26天笔记(UILabel的介绍)
- August 29th 2016 Week 36th Monday
- 妙味5:document.cookie 操作
- 利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
- json在线校验
- django中外键关联表的查询随笔
- Delphi的Owner与Parent可以不一致,而且Owner不是必须存在(一共7个问题) good
- android 用 XML 自定义边框(只上下边框有色)
- java值传递与引用传递实例
- 【转载】CSS3 文字溶解效果
- 错误	88	error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)	c:\program files (x86)\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h	590
- C/S 开发框架 ----- 广州本地
- PID控制器开发笔记之十:步进式PID控制器的实现
- Django Web开发基础环境配置流程
- ThinkPHP框架 3.2.2 获取系统常量信息 连接数据库 命名空间的理解
- perl数组高级