第一个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

在这段代码里面我们可以看到:

  1. 包含头文件<QWidget>
  2. 自定义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

1.第一个QT程序的更多相关文章

  1. Ubuntu10.04下安装Qt4和创建第一个Qt程序

    1.首先安装Qt4并采用Qt Creator进行开发演示 (1)在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfi ...

  2. Qt入门-第一个Qt程序

    在安装完之后,迫不及待创建第一个Qt  demo

  3. 编写第一个Qt程序

    http://c.biancheng.net/view/1817.html 学习一种编程语言或编程环境,通常会先编写一个“Hello World”程序.我们也用 Qt Creator 编写一个“Hel ...

  4. 我的Qt历程1:第一个Qt程序

    1.启动Qt,按照红圈内所标注顺序执行操作. 2.按下Choose键后,在“名称”栏目里给程序起名字(不要是汉字名字). 3.在“创建路径”栏目里指定程序将要使用的路径(不能用汉字路径). 4.在“类 ...

  5. 【Qt开发】01-第一个Qt程序Hello World!

    一:说在前头 我的第一份工作是做生产工具,当时用的MFC,IDE是VC6.0,现在想想真是古董级别,10年至今,微软也一直没有对MFC进行升级, 冥冥中感觉微软自己都放弃MFC了,市场上貌似MFC的岗 ...

  6. QT(3)第一个QT程序

    一.创建一个空项目 二.配置 在demo.pro文件中添加配置: greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 添加main.cpp文件 三.编写代码 ...

  7. 【Qt开发】第一个Qt程序Hello World!

    一:说在前头 我的第一份工作是做生产工具,当时用的MFC,IDE是VC6.0,现在想想真是古董级别,10年至今,微软也一直没有对MFC进行升级,冥冥中感觉微软自己都放弃MFC了,市场上貌似MFC的岗位 ...

  8. 【QT】第一个QT程序(点击按钮,显示特定文本)

    1.基类选 QWidget 2.添加UI Btnshowhello 按钮 labelhello 文本标签 要注意:文本字样和对象名的区别! 对象名和UI部件是一一对应的关系. 修改对象名和修改文本字样 ...

  9. Qt ------ window下工程项目打包成一个exe程序

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

随机推荐

  1. MacOS JMeter安装(多图)

    本文基于 MacOS 环境下进行 Jmeter 的安装. 一.下载JMeter 本文选用 JMeter 5.3 版本安装,5.3 版本需要 JDK 1.8 + 版本环境. Jmeter 5.3 下载: ...

  2. JZOJ8月8日提高组反思

    JZOJ8月8日提高组反思 T1 一开始打了个暴力 后来突然觉得是不是可以构造答案 然后就奇奇怪怪的调了1h 结果呢 Re-- 估计还是没调完 T2 这这这 好熟悉 往0点连,然后最小生成树跑一遍 结 ...

  3. jenkins.war

    一准备工作 首先你得打开SSH 二将jenkins.war转移到jenkins.war /usr/local/tomcat/apache-tomcat-7.0.63/webapps/中 然后启动tom ...

  4. 第15.24节 PyQt(Python+Qt)入门学习:Model/View架构中QTableView的作用及属性详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Designer的部件栏Item Views中提供了PyQt和Qt已经实现好的table ...

  5. PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件的checkable和checked属性

    checkable属性 checkable属性确认按钮是否可以被选中,缺省情况下该值为False,即按钮是不能被选中的. 可选择的按钮按下之后,按钮不会自动弹起来,此时按钮为选中状态,当再次点击按钮时 ...

  6. MapReduce简单执行过程及Wordcount案例

    MapReducer运行过程 以单词统计为案例. 假如现在文件中存在如下内容: aa bb aa cc dd aa 当然,这是小文件,如果文件大小较大时会将文件进行 "切片" ,此 ...

  7. 写了一个类似与豆瓣的电影的flask小demo

    先展示页面 基本的功能是都已经实现了,更多那个地方是可以点的.只不过视频上面还用的宏,哎呀,感觉麻烦.有多麻烦呢,需要先定义一个宏,然后进行引用.我们才能是用,以我的观点,还不如直接是一个循环完事.. ...

  8. vue之keep-alive组件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. html+css一些简单案例:爱心点击,盒子模型,2d动画

    canvas绘制爱心 效果预览 上代码 <!doctype html> <html> <head> <title>HTML5 Canvas爱心飘动动画特 ...

  10. Django中ORM的使用

    Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...