Как создать простое консольное приложение Qt в C++?



Я пытался создать простое консольное приложение, чтобы попробовать XML-парсер Qt. Я начал проект в VS2008 и получил этот шаблон:



int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

return a.exec();
}


поскольку мне не нужна обработка событий, мне было интересно, могу ли я попасть в беду, если я пренебрегаю созданием QCoreApplication и запуском цикла событий. В документах говорится, что это рекомендуется в большинстве случаев.



ради любопытства, однако, мне интересно, как я могу сделать какую-то общую задачу выполнить на цикл событий, а затем завершить работу приложения. Я не смог найти соответствующий пример в google.

1284   6  

6 ответов:

вот один простой способ структурировать приложение, если вы хотите запустить цикл событий.

// main.cpp
#include <QtCore>

class Task : public QObject
{
    Q_OBJECT
public:
    Task(QObject *parent = 0) : QObject(parent) {}

public slots:
    void run()
    {
        // Do processing here

        emit finished();
    }

signals:
    void finished();
};

#include "main.moc"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // Task parented to the application so that it
    // will be deleted by the application.
    Task *task = new Task(&a);

    // This will cause the application to exit when
    // the task signals finished.    
    QObject::connect(task, SIGNAL(finished()), &a, SLOT(quit()));

    // This will run the task from the application event loop.
    QTimer::singleShot(0, task, SLOT(run()));

    return a.exec();
}

Не забудьте добавить

CONFIG += console 

флаг в файле qmake .pro.

для остальных это просто использование некоторых классов Qt. Один из способов его использования-создание кросс-платформенных процессов.

вам не нужно QCoreApplication вообще, просто включите свои объекты Qt, как и другие объекты, например:

#include <QtCore>

int main()
{
    QVector<int> a; // Qt object

    for (int i=0; i<10; i++)
    {
        a.append(i);
    }

    /* manipulate a here */

    return 0;
}

мне удалось создать простую консоль "hello world" с Qt Creator

используется creator 2.4.1 и QT 4.8.0 на windows 7

два способа сделать это

Обычный C++

сделать следующее

  1. File-новый файл project
  2. в разделе Проекты выберите : другой проект
  3. выберите " простой проект C++"
  4. вводим имя проекта 5.Цели выберите рабочий стол "отметьте его"
  5. управления проектами просто нажмите кнопку Далее
  6. вы можете использовать команды c++ как обычный c++

или

консоли Qt

  1. File-новый файл project
  2. в разделе Проекты выберите : другой проект
  3. выберите консольное приложение QT
  4. цели выберите Desktop 'tick it'
  5. управление проектами просто нажмите кнопку Далее
  6. добавить следующие строки (Все C++ включает в себя вам нужно)
  7. добавить "#включить 'библиотеки' "
  8. добавить "используя пространство имен std;"
  9. после QCoreApplication a(int argc, cghar *argv[]) 10 добавьте переменные и свой программный код..

пример: для консоли QT "hello world"

file-новый файл проекта 'имя проекта'

другие проекты-консольное приложение QT

цели выберите "рабочий стол"

управление проектами - далее

код:

    #include <QtCore/QCoreApplication>
    #include <iostream>
    using namespace std;
    int main(int argc, char *argv[])
    {
     QCoreApplication a(argc, argv);
     cout<<" hello world";
     return a.exec();
     }

ctrl-R для запуска

компиляторы, используемые для выше MSVC 2010 (Qt SDK), и minGW(Qt SDK)

надеюсь, это поможет кому-то

поскольку я только недавно начал использовать QT, а также искал Www для получения информации и примеров, чтобы начать работу с простыми примерами, которые все еще ищут...

вы можете вызвать QCoreApplication:: exit(0) для выхода с кодом 0

была та же проблема. нашел несколько видео на YouTube. Итак, вот еще более простое предложение. Это весь код, который вам нужен:

#include <QDebug>

int main(int argc, char *argv[])  
{
   qDebug() <<"Hello World"<< endl;
   return 0;
}

приведенный выше код исходит из Qt5 учебник: создание простого консольного приложения с помощью

Доминик Тибо

http://www.youtube.com/watch?v=1_aF6o6t-J4

Comments

    Ничего не найдено.