• 1.第一个QT程序


    第一个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
    
  • 相关阅读:
    [翻译]NUnitString && Collection && File && Directory Assert (七)
    c++删除指定字符串之间的内容(比正则表达式快几十倍)[转]
    C++ 使用正则表达式分割字符串
    c++正则查找
    PHP的XSS攻击过滤函数
    Boost之正则表达式_[转]
    C++中的类所占内存空间总结[转]
    make_shared() shared_prt()详解区别
    C++ STRING 和WSTRING 之间的互相转换函数 和字符串替换
    LConfig:利用Lua脚本做程序的配置文件 [转]
  • 原文地址:https://www.cnblogs.com/cnleika/p/10525934.html
Copyright © 2020-2023  润新知