Я начинающий «программист», и я использую кавычки, потому что я ТАК зеленый.CodeBlocks Qt HelloWorld.exe перестает работать (C++)
Windows 7 64-разрядные
Code :: Blocks 13,12
OpenCV 2.4.10
Qt 4.8.5
Я был брошен в одиночку создать довольно большой (для меня) кусок программного обеспечения, которое использует OpenCV и mingw для отслеживания движения нескольких разных маркеров и вычисления (и точно догадки ...) многих вещей. Я почти закончил, но мне нужно включить в него некоторые элементы GUI, самое главное диалоговое окно, с помощью которого вы можете искать файлы (вчера появились). Поэтому я попытался настроить Qt с помощью Code :: Blocks и создать базовое приложение Hello World. Я настроил переменную env Path, я указал каталоги поиска компоновщика и компилятора, где они должны быть. Это все еще не работает.
#include <QApplication>
#include <QFont>
#include <QPushButton>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QPushButton quit("Quit");
quit.resize(75, 30);
quit.setFont(QFont("Times", 18, QFont::Bold));
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
quit.show();
return app.exec();
}
Это то, что я пытаюсь запустить. Компиляция отлично, никаких ошибок или предупреждений. Но когда я запускаю его, он сразу же перестает работать, так как в «Qt.exe перестает работать» и обрабатывает возвращает -1073741819 ... он падает, когда он пытается сделать что-то Qt-специфическое (QApplication ...)
Я добавил простой cout << "Hello world";
до QApplication app(argc, argv);
, и он отобразился на консоли, а затем перестал работать.
Даже когда я родила код до
QApplication app(argc, argv); return app.exec();
он по-прежнему падает точно так же.
Мой первый вопрос ... что может быть проблемой? У меня кончились идеи, и Google тоже не хочет мне помогать. Я пробовал использовать Qt Creator, и он работал нормально, но я не мог заставить его работать ... он просто печатает «Naci» в консоли, независимо от того, какой проект я пытался запустить, и у меня есть не знаю, что такое «Начи» и откуда оно взялось.
PS: И еще один вопрос. Можно ли создать консольное приложение, которое в какой-то момент вызывает функцию, которая имеет окно QDialog и получает от нее имя файла?
Редактировать: Я пытаюсь запустить примеры, прилагаемые к выпуску Qt. Все они дают мне неочевидную ссылку на ошибки vtable, и ни одно из решений, которые я нашел во время работы. Jesus ... это не дружит с новыми людьми edit2: Я собираюсь перестроить и перенастроить Qt ... на моем нетбуке 1ghz, вероятно, это займет некоторое время ...
Я никогда не видел, чтобы какие-либо «QWidgets» использовались (в вашем случае, кнопка), не имея их внутри 'QMainWindow'. Я не уверен, что это может сработать, но я бы предложил создать «QMainWindow» с кнопкой в качестве дочернего элемента. Это также должно быть в примерах. – Bowdzone
относительно создания окна QDialog Я думаю, что это возможно. Для Linux я могу использовать консольное приложение fork() для предоставления QDialog в качестве дочернего процесса.затем отправьте обратно имя файла в «консольное приложение» родительского процесса через 'pipe()', но для окон это возможно через 'CreatProcess()'. – Youssef
Вы скопировали библиотеки Qt dll в папку сборки? Они необходимы для запуска любого приложения Qt. У вас есть QtCreator на польском языке. В консоли он печатает это приложение, и вам нужно нажать Return to close console. Из-за польской буквы «ś» консоль отбрасывает остальную часть текста «Naciśnij Return aby zamknąć» – firescreamer