Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: Гурман от Июня 16, 2011, 18:03



Название: словил глюк QtCreator
Отправлено: Гурман от Июня 16, 2011, 18:03
Ни с того, ни с сего, до сих пор все было нормально... В Креаторе несколько проектов, у 2-х из них есть mainwindow (один их них - динамическая библиотека, сделанная из приложения). Ничего не конфликтовало, все собирается. Вдруг обнаруживаю, что автодополнение для ui-> в основном проекте предлагает почему-то варианты из другого проекта. При наведении курсора на #include "ui_mainwindow.h" влызаит почему-то строка маршрута не своего ui_mainwindow.h, а из второго проекта, где есть такой же файл. :-\ Разумеется, маршруты нигде не менялись, маршрут к файлам библиотеки в основном проекте вообще нигде не встречается. Всё компилируется и работает. qmake не помогает. То есть, глюк чисто QtCreator.

Бред какой-то...

#include "mainwindow.h"      // редактор показывает в балун-хелпе правильный маршрут
#include "ui_mainwindow.h"  // редактор показывает в балун-хелпе маршрут в другой проект, на чужой файл

Кто-нибудь может дать идею, как от этого избавиться?  ???


Название: Re: словил глюк QtCreator
Отправлено: Гурман от Июня 16, 2011, 18:24
перезапустил Креатор - не помогло

закрыл проект из которого тянется неверный маршрут - не помогло

перезапустил Креатор - помогло...

открыл снова тот проект - вроде нормально

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


Название: Re: словил глюк QtCreator
Отправлено: aleyer от Сентября 23, 2012, 01:32
Кто-нибудь может дать идею, как от этого избавиться?  ???
Столкнулся с тем же, искал решение, не нашел, встретил только тему на этом форуме. До решения додумался, все просто.
Кьют при генерировании файлов типа ui_mainwindow.h в них прописывает вот такие конструкции:
Код:
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
У каждого файла они должны быть уникальными, копии Creator игнорирует. Соответственно, создавать надо не MainWindow, а классы с уникальным названием. Имеющийся можно переименовать. Возможно, это излишне, но я переименовал как класс ui (в файле mainwindow.ui), класс MainWIndow, так и файлы cpp/h в которых они хранились с изменением путей в файле pro и исходниках. Ну и вот эти конструкции в исходниках подправил.
После этого все ОК.