Форум: Форум C++Разное
Новые темы: 00
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Qt и Visual Studio 2010 как начать?
 
 автор: morgan18   (14.02.2012 в 22:33)   письмо автору
 
 

Решил начать изучать Qt. Скачал qt-win-opensource-4.8.0-vs2010, установил, а интегрировать в Visual Studio не получается. Как это сделать?(У меня Windows 7 x64)
Также скачивал qt-vs-addin-1.1.10, устанавливал. В Студии появилась вкладка Qt, дальше в опциях этого аддона указал путь к Qt. Но когда создаю проект он не находит пути к инклюдам.
Как интегрировать Qt и Visual Studio?
Какую литератуу посоветуете?

  Ответить  
 
 автор: cheops   (15.02.2012 в 18:26)   письмо автору
 
   для: morgan18   (14.02.2012 в 22:33)
 

Сейчас в дороге на ноутбуке... если чуть-чуть потерпите, то я подготовлю развернутый ответ.

  Ответить  
 
 автор: morgan18   (15.02.2012 в 18:58)   письмо автору
 
   для: cheops   (15.02.2012 в 18:26)
 

конечно потерплю.

  Ответить  
 
 автор: Drive.it   (16.02.2012 в 12:52)   письмо автору
 
   для: cheops   (15.02.2012 в 18:26)
 

Добрый день ! Сам интересуюсь QT, с вашего позваления добавлю свой вопрос. Меня интересует необходимость знания STL с++ для овладения навыков программирования в qt среде. Можно ли использовать stl в qt? Или qt самодостаточна и справляется с широким спектром задач своим набором классов? Спасибо

  Ответить  
 
 автор: cheops   (18.02.2012 в 10:27)   письмо автору
 
   для: Drive.it   (16.02.2012 в 12:52)
 

>Меня интересует необходимость знания STL с++ для овладения навыков программирования в qt среде.
Знать в обязательно порядке.

>Или qt самодостаточна и справляется с широким спектром задач своим набором классов?
Она использует STL, только там именования не стандартные, а STL как-бы интегрирован внутрь, в общем знание STL вам сильно поможет в освоении Qt.

  Ответить  
 
 автор: cheops   (18.02.2012 в 10:21)   письмо автору
 
   для: morgan18   (14.02.2012 в 22:33)
 

Вот как мне удалось запустить проект, не прибегая к qt-vs-addin-1.1.10, который, кстати с Express-версией еще и отказывается работать.
1. Скачал qt-win-opensource-4.8.0-vs2010, установил.
2. Ручками прописал путь к C:\Qt\4.8.0\bin в переменной окружения PATH (чтобы moc можно было запускать без указания пути). После этого стоит перезагрузить компьютер.
3. Создал проект Win32, указав в настройках "пустой".
4. Добавил в него единственный файл main.cpp со следующим содержимым
#include <Windows.h>
#include <QtCore\QtCore>
#include <QtGui\QtGui>

#pragma comment(lib, "QtCore4.lib")
#pragma comment(lib, "QtGui4.lib")

int WINAPI WinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR lpcmdline,
  int ncmdshow)
{
  QApplication app(ncmdshow, (char **)lpcmdline);
  QLabel lbl("Hello, World!");
  lbl.show();
  return app.exec();
}

5. В свойствах проекта Проект->Свойства->Свойства конфигурации->Общие в поле "Набор символов" выставил "Не задано" (не уверен на счет UNICODE в Qt, отдельно нужно исследовать, как там лучше поступить, пока так, чтобы не возиться с перекодировкой туда обратно, хотя с точки зрения Windows это плохо и снижает производительность).
6. В свойствах проекта Проект->Свойства->Свойства конфигурации->C/C++->Общие в поле "Дополнительные каталоги включаемых файлов" прописал "C:\Qt\4.8.0\include".
7. В свойствах проекта Проект->Свойства->Свойства конфигурации->Компоновщик->Общие в поле "Дополнительные каталоги библиотек" прописал "C:\Qt\4.8.0\lib".
8. В свойствах проекта Проект->Свойства->Свойства конфигурации->События построения->Событие перед построением в поле "Командная строка" прописал "moc -o main.moc main.cpp" (если переменную окружения PATH не правили, то вместо moc нужно писать C:\Qt\4.8.0\bin\moc).

После этого у меня все откомилировалось и запустилось.

  Ответить  
 
 автор: morgan18   (18.02.2012 в 21:59)   письмо автору
 
   для: cheops   (18.02.2012 в 10:21)
 

спасибо попробую.

  Ответить  
 
 автор: B-Rhyme   (18.03.2012 в 23:43)
 
   для: cheops   (18.02.2012 в 10:21)
 

Скажите, а так с каждым приложением надо проделывать?

#pragma comment(lib, "QtCore4.lib")
#pragma comment(lib, "QtGui4.lib")

  Ответить  
 
 автор: cheops   (19.03.2012 в 13:42)   письмо автору
 
   для: B-Rhyme   (18.03.2012 в 23:43)
 

Да, библиотеку с Qt вам придется подключать к каждому проекту. Вместо этих строк можно воспользоваться настройками проекта, т.е. в коде их не будет, а подключение библиотек переместиться в make-файл.

  Ответить  
 
 автор: B-Rhyme   (18.03.2012 в 23:47)
 
   для: cheops   (18.02.2012 в 10:21)
 

Я всё сделал так, как вы написали.
Но выдаёт такую вот ошибку:

1> LINK : fatal error LNK1104: не удается открыть файл "QtCore.lib"

Помогите, пожалуйтса. Я уже неделю целую пытаюсь прикрутить Qt 4.8.0 к Visual Studio 2010...

  Ответить  
 
 автор: cheops   (19.03.2012 в 13:45)   письмо автору
 
   для: B-Rhyme   (18.03.2012 в 23:47)
 

Вы второй пункт выполнили? Т.е. прописали путь к Qt в переменной окружения PATH? Если не сложно просто скопируйте сюда или прикрепите в виде файла PATH-строку на вашем компьютере.

PS Можно обойтись без редактирования PATH, но тогда путь к библиотекам в проекте придется прописывать полностью.

  Ответить  
 
 автор: B-Rhyme   (19.03.2012 в 19:55)
 
   для: cheops   (19.03.2012 в 13:45)
 

Да. Я прописал путь переменной среды.
Вот моя строка -

C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin;C:\PostgreSQL\bin;C:\PostgreSQL\include;C:\PostgreSQL\lib;C:\Qt\4.8.0;C:\Program Files\Microsoft Windows Performance Toolkit\



Я много раз до этого пробовал собирать через консоль. Всё время были ошибки.
Скажите, а можно с вами на непосредственный контакт выйти? Типа мыла?

  Ответить  
 
 автор: cheops   (19.03.2012 в 22:31)   письмо автору
 
   для: B-Rhyme   (19.03.2012 в 19:55)
 

1. Компьютер перезагружали? Какая операционная система?
2. Если хотите могу выложить работающий у меня проект (со всеми настройками или вы прикрепите к сообщению свой).

PS Мыло есть, но лучше переписку вести тут и удобнее и другим поможем решить проблему. Я никуда не денусь (форум просматриваю каждый день, если есть сообщения, то чаще), а если денусь, то и по e-mail не будут доступен.

  Ответить  
 
 автор: B-Rhyme   (19.03.2012 в 22:57)
 
   для: cheops   (19.03.2012 в 22:31)
 

Да, компьютер перезагрузил.
В принципе, всё работает.
Моя ошибка была в прописании .moc. Проглядел этот пункт.

Я потом еще всё таки установил Add-On последней версии. Создал простейший проект - запустился, вроде бы всё хорошо.

насчёт е-майла понял.)

Ну, у меня еще масса вопросов к вам. И не знаю, то-ли создавать новые темы каждый раз, то-ли как-то за раз где-то обсудить всё, что интересует, если это возможно.

  Ответить  
 
 автор: cheops   (19.03.2012 в 23:12)   письмо автору
 
   для: B-Rhyme   (19.03.2012 в 22:57)
 

>Ну, у меня еще масса вопросов к вам. И не знаю, то-ли создавать новые темы каждый раз, то-ли
>как-то за раз где-то обсудить всё, что интересует, если это возможно.
Лучше да, создавать темы - форум структурный, а не линейный, тут лучше каждый вопрос в новой теме обсуждать. Сколько нужно тем, столько и создавайте. Чем смогу, помогу, тем более вопросов именно по C++ не много - все сидят в других разделах, а мне бывает часто интересно реализовать мини-проектик по C++, потренироваться, размяться :).

  Ответить  
 
 автор: B-Rhyme   (19.03.2012 в 23:17)
 
   для: cheops   (19.03.2012 в 23:12)
 

Хорошо. Тогда в скором времени начну задавать вопросы по привязке PostgreSQL к Qt или к Visual Studio.

Скажите, я вот один раз прописал все то, что вы сказали.
Больше мне таких процедур не придется делать?
Или это в конфигурациях КАЖДОГО проекта нужно добавлять пути к либам и остальным файлам?

  Ответить  
 
 автор: cheops   (20.03.2012 в 00:19)   письмо автору
 
   для: B-Rhyme   (19.03.2012 в 23:17)
 

>Тогда в скором времени начну задавать вопросы по привязке PostgreSQL к Qt или к Visual Studio.
Хорошо, тем более именно PostgreSQL я не прикручивал - она поздно появилась в Windows, здесь уже SQLite обороты набрал, тем более он прекрасно встраивается в программы.

>Скажите, я вот один раз прописал все то, что вы сказали.
>Больше мне таких процедур не придется делать?
>Или это в конфигурациях КАЖДОГО проекта нужно добавлять пути к либам и остальным файлам?
Да, это вам придется делать каждый раз, или создать проект-заготовку с настройками и копировать его или на основании проекта создать проект-шаблон (правда, сам я в Visual Studio такой шаблон не делал, только в Builder, но наверняка такая возможность должна быть). В общем облегчить себе жизнь можно многими способами. В конце концов никто не отменял Qt Creater - традиционную среду разработки Qt-программ, там с этим делом попроще. С другой стороны с Visual Studio тоже не плохо бы разобраться, как настраивать, как подключать библиотеки, так как PostgreeSQL, да и любую другую библиотеку тоже нужно будет поключать, вы наверное вряд ли захотите работать с DLL-библиотекой напрямую через WinAPI (чтобы код оставался платформонезависимым).

  Ответить  
 
 автор: B-Rhyme   (25.03.2012 в 14:38)
 
   для: cheops   (20.03.2012 в 00:19)
 

Понятно. Скорее всего буду каждый раз проделывать такой трюк)

Хотя, и без него,без трюка, проекты Qt собираются и компилируются довольно таки без проблем.
А чем отличается Qt SDK последней версии от того, что я ставлю qt-win-opensource-4.8.0-vs2010 в комплекте с qt-vs-addin-1.1.10 и qt-creator ?

SDK вроде, ну как я понял, это полный комплект всего необходимого. Тогда почему рекоммендуют ставить всё по отдельности?

  Ответить  
 
 автор: cheops   (25.03.2012 в 17:41)   письмо автору
 
   для: B-Rhyme   (25.03.2012 в 14:38)
 

Qt SDK - это чистая библиотека, вы с ней сможете работать где угодно, будь у вас VS2010, VS2008, VS2005, VS2003, VS2001 или VS6. Более того, вы сможете использовать другие компиляторы. А компоненты позволяют вам настраивать их на удобную работу, т.е. если вы поставили qt-win-opensource-4.8.0-vs2010, вам уже все вышеперечисленные телодвижения не нужны.

  Ответить  
 
 автор: morgan18   (25.03.2012 в 19:07)   письмо автору
98.8 Кб
 
   для: cheops   (25.03.2012 в 17:41)
 

Насколько я понял, если стоит Qt SDK, то настраивать пути и т.п. не нужно.
У меня почему-то Qt Creator на первом же проекте выдал следующее

18:06:05: Выполняется сборка проекта helloworld...
18:06:05: Запускается: «c:\programs\qtsdk\desktop\qt\4.8.0\mingw\bin\qmake.exe» "D:\Local_Disk(Е)\QT\helloworld\helloworld.pro" -r -spec win32-g++ "CONFIG+=declarative_debug"
Cannot find file: d:\Local Disk(Е)\QT\helloworld\helloworld.pro.
18:06:05: Процесс «c:\programs\qtsdk\desktop\qt\4.8.0\mingw\bin\qmake.exe» завершился с кодом 2.
Возникла ошибка при сборке проекта helloworld (цель: Desktop)
Во время выполнения сборки на этапе «qmake»

как решить эту проблемку?

  Ответить  
 
 автор: cheops   (25.03.2012 в 19:18)   письмо автору
 
   для: morgan18   (25.03.2012 в 19:07)
 

А проект какого типа выбираете?

В Qt Creator вообще по идеи ничего настраивать не нужно - это родная программа, которая о предпроцессорной обработке и так знает. Настраивать нужно Visual Studio, которая о Qt ни сном ни духом, но о порядках в C/C++ прекрасно осведомлена, поэтому в ней что хочешь можно откомпилировать, хоть Qt, хоть CUDA, хоть любой другой код с участием предпроцессорной обработки, да и постпроцессорной тоже.

  Ответить  
 
 автор: morgan18   (25.03.2012 в 19:47)   письмо автору
 
   для: cheops   (25.03.2012 в 19:18)
 

Другой проект -> Пустой проект.
Когда открываю примеры, то они запускаются без проблем.

  Ответить  
 
 автор: cheops   (25.03.2012 в 20:01)   письмо автору
 
   для: morgan18   (25.03.2012 в 19:47)
 

Черт не могу воспроизвести, у меня вместо ming-а подцепился компилятор VisualStudio, он конечно, тоже на что-то ругается, но проект собирает и ваш пример работает успешно.

PS Попробуйте проект разместить так, чтобы в пути не было пробелов?

  Ответить  
 
 автор: morgan18   (25.03.2012 в 20:10)   письмо автору
 
   для: cheops   (25.03.2012 в 20:01)
 

В чем разница при выборе "активной конфигурации сборки" Qt 4.8.0 for Desktop - MSVC(Qt SDK) и Qt 4.8.0 for Desktop - MinGW(Qt SDK)?

Теперь когда стоит Qt 4.8.0 for Desktop - MSVC(Qt SDK) на что-то ругается, но запускается.
Когда стоит Qt 4.8.0 for Desktop - MinGW(Qt SDK) все нормально)))

  Ответить  
 
 автор: cheops   (25.03.2012 в 20:50)   письмо автору
 
   для: morgan18   (25.03.2012 в 20:10)
 

MinGW - это порт UNIX-компилятора GCC под Windows. Теоретически он должен работать без проблем на любой платформе. Практически, компиляторы очень сложные программы и разумеется родной компилятор от Visual Studio (MSVC), на котором и Windows и Visual Studio и еще чертова туча программ уже долгие годы компилируются - работает устойчивее. Собственно и GCC бы работал, если бы его интенсивно использовали, но основная масса разработчиков, которые его используют сидят по UNIX-системами, поэтому в Windows-версии жуков больше (а разница между операционными системами все ж влияет).

  Ответить  
 
 автор: morgan18   (25.03.2012 в 20:06)   письмо автору
 
   для: cheops   (25.03.2012 в 19:18)
 

Создал каталог D:\QtProjects\. Создал новый проект и сохранил его в этот каталог, программа запучтилась.
В чем разница между D:\QtProjects и D:\Local Disk(Е)\QT\ ?
Я где-то читал, что не желательны пробелы. Изменял D:\Local Disk(Е)\QT\ на D:\Local_Disk(Е)\QT\ и ошибка не исчезла. Почему тогда сейчас все нормально?

  Ответить  
 
 автор: cheops   (25.03.2012 в 20:53)   письмо автору
 
   для: morgan18   (25.03.2012 в 20:06)
 

В Windows пробелы в путях - это обычное дело, в UNIX-системах это не так... хорошо еще что вот такие пути D:\QtProjects у вас работают, а бывает, что нужно менять на D:/QtProjects, так как \ это традиционное экранирование - не все UNIX-системы готовы к таким Windows-откровениям. Почему Visual Studio и отдается предпочтение - её использует такое количество разработчиков, причем именно под Windows, что ошибки в ней если и встречаются, то их довольно оперативно фиксят, ну и кроме того, для Windows-разработчиков в Windows ничего неожиданного не случается.

  Ответить  
 
 автор: morgan18   (03.04.2012 в 20:52)   письмо автору
3.5 Кб
 
   для: cheops   (25.03.2012 в 20:53)
 

Помогите пожалуйста)) ничего не получается с сигналами и слотами. вроде бы немного понял как это все работает, а реализовать не получается(((

  Ответить  
 
 автор: cheops   (03.04.2012 в 23:05)   письмо автору
 
   для: morgan18   (03.04.2012 в 20:52)
 

Что делаете, что хотите добиться и в чем вопрос?

PS Под новые вопросы лучше заводить новые темы.

  Ответить  
 
 автор: morgan18   (03.04.2012 в 23:16)   письмо автору
 
   для: cheops   (03.04.2012 в 23:05)
 

хочу чтобы в поле ввода вводился текст и при клике на кнопку он появлялся в label.

  Ответить  
 
 автор: B-Rhyme   (03.04.2012 в 23:38)   письмо автору
 
   для: cheops   (25.03.2012 в 17:41)
 

Глупо, но спрошу - так что же лучше ставить Qt SDK или по частям?

  Ответить  
 
 автор: alsav22   (19.04.2012 в 22:54)   письмо автору
 
   для: cheops   (18.02.2012 в 10:21)
 

А как таким способом запустить примеры из папки C:\Qt\4.8.1\examples? У меня что-то не получается. Компоновщик сообщает о неразрешённых внешних символах.

  Ответить  
 
 автор: cheops   (21.04.2012 в 14:38)   письмо автору
 
   для: alsav22   (19.04.2012 в 22:54)
 

Продолжим обсуждение в теме по ссылке http://softtime.ru/cpp/read.php?id_forum=1&id_theme=1493

  Ответить  
 
 автор: cheops   (18.02.2012 в 10:24)   письмо автору
 
   для: morgan18   (14.02.2012 в 22:33)
 

>Какую литературу посоветуете?
Если только начинаете, то лучше всего начать с Qt4.5. Профессиональное программирование на C++. Только ухо в остро держите, устаревает все моментально.

  Ответить  
 
 автор: Drive.it   (18.02.2012 в 13:25)   письмо автору
 
   для: cheops   (18.02.2012 в 10:24)
 

благодарю !

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования