• 界面编程之QT的基本介绍与使用20180722


    /*******************************************************************************************/

    一、qt介绍

    Qt是一个跨平台的C++图形用户界面应用程序框架。它也是目前流行的Linux桌面环境KDE的基础

    Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持

    支持的平台

        Windows – XP、Vista、Win7、Win8、Win2008、Win10

        Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台

        Macintosh – Mac OS X

        Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

    控件,部件,构件指的都是一个东西,只是叫法不同

    信号和槽(信号的处理函数)

    /*******************************************************************************************/

    二、qt优点

    qt最大的优点就是跨平台,(只要装了qt),无论在win,linux,android,ios都可以运行。

    qt的学习都是调用一些封装好的api

    查看api可以使用 qt帮助文档

    /*******************************************************************************************/

    三、qt应用程序框架

    1.创建QT项目

    qt项目路径不要有中文,项目名称也不要有中文

    刚开始 创建界面 那个不要勾选,后面需要用到ui界面设计的时候才勾选。

    同时,注意:

    QMainWindow pc上用的,也就是带菜单栏的那种界面

    QWidget 各种控件的基类,用的最多的

    QDialog 对话框

    编译并运行的快捷键 ctrl+r

    2.项目创建后,自动生成QApplication应用程序类的说明

    //QApplication应用程序类

    //Qt头文件没有.h

    //头文件和类名一样,并且基本都是Q开头,并且跟着的字母大写

    #include <QApplication>

    int main(int argc, char *argv[])

    {

        //有且只有一个应用程序类的对象

        QApplication a(argc, argv);

            

             //自己的具体业务代码 begin

        //MyWidget继承于QWidget, QWidget是一个窗口(控件)基类

        //所以MyWidget也是窗口类

        //w就是一个窗口(对象)

        MyWidget w;

        //窗口创建默认是隐藏,需要人为显示,没有show就不会显示

        w.show();

             //自己的具体业务代码 end

            

        //让程序一直执行,等待用户操作

        //等待事件的发生

        a.exec();

        return 0;

    }

    class MyWidget中:

        //Q_OBJECT //这是一个宏,信号与槽的时候需要,后面还会讲,//没有这种需要的时候可以不要,对于第一个测试程序来说就不需要了

    /*******************************************************************************************/

    四、项目文件(.pro文件)

    每个应用程序都会对应一个.pro的项目文件,是自动生成的,.pro文件中:

    #这个表示模块,这个是头文件需要的,也就是添加了头文件还不够,还要在这里添加头文件对应的模块。即头文件需要从模块中查找,因为头文件按模块分类了

    #头文件对应模块的查找办法:头文件对应类名上按f1跳到对应的帮助文档,找到qmake:后面对应的就是需要加的内容

    #见图1,qt具体有哪些模块见图2 其中Qt Webkit 是浏览器引擎 Qt Mulitmedia * 是多媒体,qt core qt gui是基本模块写不写都一样:

     

     

    QT       += core gui

    #高于4版本,添加 QT += widgets ,//为了兼容Qt4,如果是qt5直接QT += widgets即可,

    #widgets是最核心最基本的,一般即使自己来创建个空项目(全部空的),.pro是空的,全部自己写也要包含这个

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

            

    #应用程序的名字,也是窗口左上角显示的名字

    TARGET = mike

    #指定makefile的类型, 比如app,表示通过makefile生成一个可执行程序。如果是lib,则生成的是库

    TEMPLATE = app

    #源文件 .cpp文件

    SOURCES += main.cpp

            mywidget.cpp

    #头文件 .h文件

    HEADERS  += mywidget.h   

            

    /*******************************************************************************************/

    五、第一个qt程序

    具体见《HelloQt》,这个是创建的空的项目,然后自己一步步添加的项目,具体如何创建空项目见图3:

     

    main.c文件:

     1 #include <QApplication>
     2 #include <QWidget> //窗口控件基类
     3 #include <QPushButton>
     4 
     5 int main(int argc, char **argv)
     6 {
     7     QApplication app(argc, argv);
     8 
     9     QWidget w;
    10     w.setWindowTitle(QString("主要看气质")); //设置标题
    11 
    12     /*如果不指定父对象,对象和对象(窗口和窗口)没有关系,独立
    13      * a指定b为它的父对象,a放在b的上面
    14      * 指定父对象,有2种方式:
    15      *            1)setParent
    16      *            2)通过构造函数传参
    17      * 指定父对象,只需要父对象显示,上面的子对象自动显示
    18      */
    19 
    20     QPushButton b;
    21     b.setText("^_^"); //给按钮设置内容
    22     b.setParent(&w); //指定父对象
    23     b.move(100, 100); //移动坐标
    24 
    25     QPushButton b1(&w); //通过构造函数传参
    26     b1.setText("abc");
    27 
    28     w.show();
    29 
    30     app.exec();
    31     return 0;
    32 }
    main.cpp

    其中,

    QWidget w;

    w.setWindowTitle(QString("主要看气质")); //设置标题

  • 相关阅读:
    java支持跨平台获取cpuid、主板id、硬盘id、mac地址 (兼容windows、Linux)
    Oracle 数据导入导出
    Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
    Liunx下查看服务器硬件信息
    Linux文件类型及如何查看,修改文件读写权限
    Linux ext3 ext4 区别
    网站访问量大 怎样优化mysql数据库
    LeetCode——Coin Change
    LeetCode——two sum
    LeetCode——Edit Distance
  • 原文地址:https://www.cnblogs.com/yuweifeng/p/9350733.html
Copyright © 2020-2023  润新知