zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Java基于Socket文件传输示例
    mysql 改变编码
    POI应用:利用word模板批量生成word文档(java中word文档的读写)
    Win 7—FTP服务器配置
    Chrome 快捷键
    JAVA中使用FTPClient上传下载 java利用ftp协议上传文件(by me)
    JAVA中使用FTPClient上传下载
    如何去除TD之间的空隙
    较丰富的教程
    输入年月 返回当月天数.html
  • 原文地址:https://www.cnblogs.com/cnleika/p/10525934.html
Copyright © 2011-2022 走看看