精华内容
下载资源
问答
  • 该资源为VS2013+QT5开发环境的安装配置以及Qt工程创建
  • 使用QtCreator创建Qt工程

    千次阅读 2015-04-12 22:32:20
    一、使用QtCreator—V2.4.1创建工程: ①配置编译工具:Tools-->Options-->Build & Run -->QtVersion/Tool Chains ############################ 添加之前编译生成的qmake,这个用来生成Makefi

    前面一篇文章记录了Qt库文件和开发相关工具的编译,现在就来使用这些东东来写一实用的GUI。

    一、使用QtCreator—V2.4.1创建工程

    ①配置编译工具:Tools-->Options-->Build & Run -->QtVersion/Tool Chains


    ############################   添加之前编译生成的qmake,这个用来生成Makefile文件   ######################################################################


    #################################添加编译工具gcc的g++#####################################################################

    编译器版本:

    gcc-4.6.3和交叉编译器gcc4.4.3


    ②新建一个工程:


    ###################################################################################################################################


    ################################### Next之后就来到下面这个对话框 ##############################################################################


    之后的操作除了根据自己的情况改改名字之外一路Next,直到finish。

    一个Qt工程就新建完成! ^_^


    二、下面记录自己写的一个串口接收GUI工程串口接收

    硬件平台:arm9--tq2440开发板

    Linux内核版本:2.6.30.4

    工程文件一览:


    具体的代码实现

    ①窗口类文件:

    mainwindow.h 

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QString>
    #include "thread.h"
    
    namespace Ui {
        class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
        QString s_buf;
    
    
    private slots:
        void show_rec(); //用于显示接收的数据
    
        void on_textBrowser_highlighted(const QString &arg1);
    
        void on_pushButton_clicked();
    
        void on_pushButton_2_clicked();
    
        void on_pushButton_3_clicked();
    
    private:
        Ui::MainWindow *ui;
        MyThread *threadA;  //声明一个线程
        unsigned int count;
    };
    
    #endif // MAINWINDOW_H
    
    mainwindow.cpp :是对mainwindow.h文件里边类成员的实现

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <termios.h>
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <strings.h>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        this->setWindowTitle("调试界面");
    
        /* thread */
        threadA = new MyThread;
        threadA->Flag_stop = 1; // do not open uart
        count =0;
        threadA->start();
    
        connect(threadA,SIGNAL(finished()),this,SLOT(show_rec()));
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::on_textBrowser_highlighted(const QString &arg1)
    {
        count++;
        ui->textBrowser->setText(arg1);  //在textBrowser上显示接收到的字符
        ui->textBrowser->moveCursor(QTextCursor::End);//将最新的信息显示在窗口
        memset(threadA->rec_buf,'\0',sizeof(threadA->rec_buf)); //将src_buf数组清空
        /* 下面是为了处理可能是textBrowser缓冲区不够卡死的情况 */
        if(count == 40)
        {
            count =0;
            s_buf ="";
            ui->textBrowser->setPlainText("");
        }
    }
    
    void MainWindow::show_rec()
    {
        QString tmp=threadA->rec_buf;   //将字符型数组转化成Qstring型
        s_buf = s_buf+tmp;              //累积所有收到的字符
        on_textBrowser_highlighted(s_buf);
    }
    
    /*****************************************
     ***open 按键槽函数
     ***功能:改变状态标识使线程进行读串口数据
     ******************************************/
    void MainWindow::on_pushButton_clicked()
    {
        threadA->Flag_stop = 0;
    }
    
    /*****************************************
     ***close 按键槽函数
     ***功能:改变状态标识使线程停止读串口数据
     ******************************************/
    void MainWindow::on_pushButton_3_clicked()
    {
        threadA->Flag_stop = 1;
    }
    
    /*****************************************
     ***clear 按键槽函数
     ***功能:改变状态标识清除显示
     ******************************************/
    void MainWindow::on_pushButton_2_clicked()
    {
        s_buf ="";
        ui->textBrowser->setPlainText("");
    
    }
    
    在这背后还有一个工程自动帮忙生成的头文件叫ui_mainwindow.h在默默工作:他是由QtCreator自带的designer工具生成的,就在我们使用了一些控件之后

    /********************************************************************************
    ** Form generated from reading ui file 'mainwindow.ui'
    **
    ** Created: Sun Apr 12 21:52:59 2015
    **      by: Qt User Interface Compiler version 4.5.3
    **
    ** WARNING! All changes made in this file will be lost when recompiling ui file!
    ********************************************************************************/
    
    #ifndef UI_MAINWINDOW_H
    #define UI_MAINWINDOW_H
    
    #include <QtCore/QVariant>
    #include <QtGui/QAction>
    #include <QtGui/QApplication>
    #include <QtGui/QButtonGroup>
    #include <QtGui/QHeaderView>
    #include <QtGui/QMainWindow>
    #include <QtGui/QPushButton>
    #include <QtGui/QSpinBox>
    #include <QtGui/QTabWidget>
    #include <QtGui/QTextBrowser>
    #include <QtGui/QToolBar>
    #include <QtGui/QWidget>
    
    QT_BEGIN_NAMESPACE
    
    class Ui_MainWindow
    {
    public:
        QWidget *centralWidget;
        QTabWidget *tabWidget;
        QWidget *tab;
        QTextBrowser *textBrowser;
        QPushButton *pushButton;
        QPushButton *pushButton_2;
        QSpinBox *serl;
        QPushButton *pushButton_3;
        QWidget *tab_2;
        QToolBar *mainToolBar;
    
        void setupUi(QMainWindow *MainWindow)
        {
            if (MainWindow->objectName().isEmpty())
                MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
            MainWindow->resize(304, 212);
            centralWidget = new QWidget(MainWindow);
            centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
            tabWidget = new QTabWidget(centralWidget);
            tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
            tabWidget->setGeometry(QRect(0, 0, 291, 191));
            tab = new QWidget();
            tab->setObjectName(QString::fromUtf8("tab"));
            textBrowser = new QTextBrowser(tab);
            textBrowser->setObjectName(QString::fromUtf8("textBrowser"));
            textBrowser->setGeometry(QRect(0, 0, 221, 161));
            pushButton = new QPushButton(tab);
            pushButton->setObjectName(QString::fromUtf8("pushButton"));
            pushButton->setGeometry(QRect(230, 50, 51, 27));
            pushButton_2 = new QPushButton(tab);
            pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
            pushButton_2->setGeometry(QRect(230, 90, 51, 31));
            serl = new QSpinBox(tab);
            serl->setObjectName(QString::fromUtf8("serl"));
            serl->setGeometry(QRect(230, 10, 51, 27));
            pushButton_3 = new QPushButton(tab);
            pushButton_3->setObjectName(QString::fromUtf8("pushButton_3"));
            pushButton_3->setGeometry(QRect(230, 130, 51, 27));
            tabWidget->addTab(tab, QString());
            tab_2 = new QWidget();
            tab_2->setObjectName(QString::fromUtf8("tab_2"));
            tabWidget->addTab(tab_2, QString());
            MainWindow->setCentralWidget(centralWidget);
            mainToolBar = new QToolBar(MainWindow);
            mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
            MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
    
            retranslateUi(MainWindow);
    
            tabWidget->setCurrentIndex(0);
    
    
            QMetaObject::connectSlotsByName(MainWindow);
        } // setupUi
    
        void retranslateUi(QMainWindow *MainWindow)
        {
            MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
    #ifndef QT_NO_STATUSTIP
            MainWindow->setStatusTip(QString());
    #endif // QT_NO_STATUSTIP
            pushButton->setText(QApplication::translate("MainWindow", "open", 0, QApplication::UnicodeUTF8));
            pushButton_2->setText(QApplication::translate("MainWindow", "clear", 0, QApplication::UnicodeUTF8));
            pushButton_3->setText(QApplication::translate("MainWindow", "close", 0, QApplication::UnicodeUTF8));
            tabWidget->setTabText(tabWidget->indexOf(tab), QApplication::translate("MainWindow", "uart", 0, QApplication::UnicodeUTF8));
            tabWidget->setTabText(tabWidget->indexOf(tab_2), QApplication::translate("MainWindow", "sound", 0, QApplication::UnicodeUTF8));
            Q_UNUSED(MainWindow);
        } // retranslateUi
    
    };
    
    namespace Ui {
        class MainWindow: public Ui_MainWindow {};
    } // namespace Ui
    
    QT_END_NAMESPACE
    
    #endif // UI_MAINWINDOW_H
    ②线程类文件

    thread.h

    //thread.h
    #ifndef THREAD_H
    #define THREAD_H
    #include <QThread>
    
    class MyThread:public QThread
    {
    	Q_OBJECT
    public:
        MyThread();
        char rec_buf[30];
        volatile bool Flag_stop;
    
    protected:
    	virtual void run();
    };
    #endif
    
    thread.cpp

    #include "thread.h"
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <termios.h>    //串口用到的
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <strings.h>
    #include <memory.h>
    /* MyThread类的构造函数 */
    MyThread::MyThread()
    {
    }
    
    /****************************
    ***功能:打开串口设备文件,并进行串口设置,工作时负责读和发信号
    ***设置属性:115200,8,n,1
    *****************************/
    void MyThread::run()          //这就是线程的具体工作了
    {
        int fd;
        fd = open("/dev/tq2440_serial1",O_RDWR|O_NOCTTY);
        if(fd<0)
        {
            printf("open serial error!");
        }
        struct termios opt;
        tcgetattr(fd, &opt);
        //opt.c_cc[VMIN] = 20;//设置最少接收字符数
        opt.c_iflag = 0;
        opt.c_oflag = 0;
        opt.c_lflag = 0;
        opt.c_cflag = B115200 | CS8 | CLOCAL | CREAD;//基本属性:8N1
        tcsetattr(fd, TCSANOW, &opt); //TCSANOW:the change occurs immediately,改变立即发生
    
        tcflush(fd,TCIFLUSH);//刷新接收缓冲区
        unsigned long i=0;
        while(1)
        {
            if(!Flag_stop)
            {
                //read receive data!!!
                read(fd,rec_buf,sizeof(rec_buf)); //无资源可读会进入睡眠
                emit finished();  //读完发一个信号。谁会接收呢?不用这里关心!
                tcflush(fd,TCIFLUSH); //清除缓冲
                printf("%ld\n",i++);
            }
            else
                tcflush(fd,TCIFLUSH);
    
        }
        close(fd);
        quit();
    }
    

    Linux下编译运行界面,当然这个编译工具是选择x11的那一个,不然ubuntu肯定运行不了:待会还要换回arm版本的Qt库和工具,这个操作和新建工程的一些操作大同小异,这里就不再累述。


    tq2440开发板上运行的界面:这里就不上传了,手机拍了照还没拉到电脑^_^

    搞定!加油!加油!一步两步一步两步!生气

    展开全文
  • qt创建C++工程

    千次阅读 2018-06-27 17:26:18
    Qt 创建C++工程

    Qt 创建C++工程
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    展开全文
  • qt工程创建空空目录,然后添加子项目

    一个已有的qt工程,想添加到其他工程作为一个子工程,或是在当前工程中添加一个子工程,可以使用以下方法。
    假设已有的工程为testDemo,并且实现了demo的功能。此时想要添加一个testPro工程到testDemo工程中,作为子工程。步骤为:

    新建一个空工程

    在这里插入图片描述
    工程名设定为testDemo,创建完成如图:
    在这里插入图片描述

    添加子工程

    把之前的工程拷贝到testDem.pro的同级目录
    在这里插入图片描述
    在这里插入图片描述
    选择要添加工程的*.pro文件,即可添加成功。

    在这里插入图片描述

    在当前工程下添加一个子工程

    在这里插入图片描述
    创建一个工程,创建完成后,并不是作为子工程,需要两个步骤。
    1、修改工程配置
    在这里插入图片描述
    2、把testPro工程拷贝到testDemo.pro的同级目录
    如图所示:
    在这里插入图片描述

    重新打开工程testDemo,子工程就添加成功了。

    如图:
    在这里插入图片描述

    展开全文
  • Qt创建Qml工程

    2020-02-14 21:44:45
    Qt创建Qml工程概述:创建工程图片示例:over:文末一句话: 概述: qml是一种语言(描述性的脚本语言) 文件格式一.qml为结尾,JavaScript是qml的子集。 qt的qml模块提供了开发qml类型程序的框架(据我所了解,一般...

    概述:

    qml是一种语言(描述性的脚本语言)
    文件格式一.qml为结尾,JavaScript是qml的子集。
    qt的qml模块提供了开发qml类型程序的框架(据我所了解,一般用于画面的开发,提供给mvc中的c层(controller)中去调用,并不知道自己能够独立制作程序(我自己的理解就是相当于插件或者辅助工具类型的功能))
    它的核心实现了语言和引擎基础结构
    主要是能够将qml的代码与JavaScript和c++集成(就跟我刚所说的类似与插件)

    创建工程图片示例:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    over:

    欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
    如果大家有更好的方法或有问题可以在文末评论一起讨论!
    共同学习!
    共同进步!

    文末一句话:

    凡事,先从自己身上找原因
    众生皆非完美,人难免有错误
    犯错不推诿责任,先从自己身上找原因,是一个人植根于内心的教养

    展开全文
  • 创建Qt工程

    2020-01-25 22:54:30
    使用QtCreator创建工程(方便组织和管理项目工程)。
  • QtCreator创建CMake工程

    千次阅读 2018-09-10 14:21:28
      使用Mingw编译器的话创建很简单,新建工程-Non-Qt Project-Plain C++ Application: 选择Cmake: 选择Mingw编译器即可。 二、MSVC   如果使用vs编译器的话,需要准备: 1、vs已经安装。 2、...
  • Linux QtCreator 创建工程

    2016-07-08 17:04:00
    这一天天的,都快成废物了, ...Ubuntu 1N.N.N + QtCreator 创建工程 不安装 QtSDK 的情况下,用 apt-get 安装 cmake 然后创建工程之后,直接下一步,直到一个命令行参数的地方 加入:-DCMAKE_BUILD_TYPE=Deb...
  • VC6中创建Qt工程创建

    千次阅读 2014-07-24 21:55:42
    本文主要介绍怎么创建可以在VC6中编译的QT工程。本文所采用环境为VC++6.0+QT3.3.2。 一、打开QTdesigner,,在弹出的窗口中选择new file/project标签,选中其中的C++ project,点OK按钮,出现project setting界面,...
  • CMakeLists.txt 用于qtcreator创建cmake工程,个人笔记。
  • 让我手把手,一步步的利用Qt Creator教你如何创建纯C++开发工程,步骤详情,请点击详情链接。
  • Qt创建工程

    千次阅读 2016-01-18 11:11:21
    一、选择File->New File or Project 可以分为两种方式进行设计,一种是从源文件直接编译,一种是使用UI界面设计。...接下来在工程上右键,选择添加文件: 在新建的helloworld.cpp中写下如下代码: #include
  • vs2013+qt5.5.0创建qt窗口工程

    千次阅读 2016-12-27 19:53:56
    vs2013 + qt5.5.0的插件,创建工程后,直接编译,会一直提示vs版本不同,版本号1600!=1800,编译不过,必须将链接器的系统的子系统改为控制台才能编得过。如下图所示:
  • VS+QT插件创建qt 的ActiveQT Server工程
  • Qt创建工程小结

    2012-04-27 22:09:09
    三种项目的创建方法 与 network相关项目的注意事项
  • 在vs2019中开发QT写代码是很方便,可是拖控件可能还是差了点(猜测,...然后创建工程,编译运行 运行通过后,转换工程 填好名称选择转换目录 然后打开QT,选择.pro文件,导入 就可以在QT Creator中运行了 ...
  • QT】QML工程创建

    千次阅读 2014-11-27 11:43:38
    我们在创建一个新的QML工程时,一般有两种选择: Qt Quick Application Qt Quick UI 或者是有特殊需求的话,还可以自定义用来创建工程的模板向导。 Qt Quick Application: 可同时包含QML和C++代码,有一个...
  • Qt Creator创建C++源代码工程

    万次阅读 2014-07-29 10:58:46
    Qt Creator 创建阅读C++源代码工程
  • 创建好一个QT工程之后,发现并不能直接成功编译,遇到了下面的几个问题,解决方法如下: 1.新创建好一个qt工程之后,ui_*.h文件无法打开,并且在编译器中有红线标出。 解决方法:在目录中找到ui_*.h文件,然后右键...
  • QT学习笔记1(创建第一个QT工程

    千次阅读 2018-11-10 16:15:48
    一、创建Qt工程 使用QT版本为5.6.1 1、选择创建的工程类型 Application下列出了很多应用程序的模板。 Widgets Application:支持桌面平台的有图形用户界面的应用程序。GUI的设计完全基于C++语言,采用Qt提供的...
  • 最近要开始写一个就C++的中国象棋软件,再加上棋子识别,所以需要用到qt,我用的是VS2017+QT5.9+OPENCV3.3.0。 ...2.在vs2017里如何创建QT工程 https://jingyan.baidu.com/article/20b68a889ca...
  • 创建工程注意事项 创建的路径禁止使用中文路径。 创建的源文件名字禁止使用中文。 编译代码的路径不能有中文 拷贝别人的工程注意事项 如果代码有后缀为 .pro.user 的文件,需要把此文件删除,因为此文件保存之前...
  • 但是在桌面上的所有应用中打开Qt creator之后,创建新的工程时却遇到了问题,如下图所示 在选择了工程储存路径之后,发现无法点击Next进行后续操作 经过反复思考,找到了问题所在 在安装Qt程序时,我们是在root...
  • QT中没有创建.hpp文件的功能,但我们可以...SOURCES +=这样QT工程界面也不会显示.hpp文件。 3.最后在main.cpp中加入头文件 #include “***.hpp”即可。 但是有个问题是类定义和类实现在同一个文件的话,当需要在QT中编
  • Qt Creator创建 的 project工程文件介绍

    千次阅读 2015-10-19 11:24:15
    Qt Creator创建一个带有ui文件的GUI Project 创建过程中选择这个窗口类是基于QMainWindow、QWidget还是QDialog;然后,我们可以得到5个文件,一个.pro文件,一个.ui文件,一个.h文件,两个.cpp文件(其中一...
  • 从上图中可以看到,在linux虚拟机中,使用qtcreator创建工程时,在项目菜单栏中,没有Applications这个选项。 解决办法: 原因是没有添加qmake路径!!! 找到菜单栏的工具选项,然后找到构建和运行选项,再找到...
  • Qt Creator创建纯C、c++工程

    千次阅读 2012-07-21 16:01:32
    下载2.4版本的Qt Creator ,新建工程就已经可以创建。 2、新建工程: 对于老版本,linux系统更新开发工具比较麻烦,那么新建Qt空的工程:修改.pro工程文件,添加 :QT-=core gui,然后新建main.c文件及其他文件,...
  • 1、在Qt创建工程项目; 2、创建编写的动态库程序; 3、集成使用第三方或自己编写的动态库; 4、对qmake和.pro文件有初步的认识。 下面开始吧! 多工程项目 应用程序在向多进程多动态库方向发展。多工程项目听着...
  • VS中创建编译QT项目工程

    千次阅读 2019-05-27 17:02:54
    Qt拥有强大的GUI工具和丰富的API...下面介绍如何在VS下创建编译Qt项目工程。 1. 安装qt-vs-tools工具 qt-vs-tools下载地址: https://download.qt.io/archive/vsaddin/ qt下载地址: https://download.qt.io/archiv...
  • 本文转载自:http://blog.csdn.net/simeone18/article/details/7344547一、使用VS生成的Qt工程没有应用程序的图标二、网上有别人提供的方法,不过是针对Qt的pro工程而言的三、为VS创建Qt工程设置应用程序图标的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,614
精华内容 9,045
关键字:

qt工程创建