Russian Qt Forum
Март 29, 2024, 03:18
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Нижний регистр в имени инклюда плагина дизайнера
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Нижний регистр в имени инклюда плагина дизайнера (Прочитано 4279 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Нижний регистр в имени инклюда плагина дизайнера
«
:
Октябрь 17, 2016, 21:23 »
Есть два моих разных плагина, которые в дизайнере перетаскиваются на окно приложения. У обоих плагинов в названии есть символы в верхнем регистре. При сборке приложения получаю ошибку "не найден инклюд <widgetname.h>" хотя должно быть WidgetName.h. Смотрю в исходник mainwindow.ui, который создаёт дизайнер, и там вижу
Код:
<customwidget>
<class>WidgetName</class>
<extends>QWidget</extends>
<header>widgetname.h</header>
</customwidget>
но у другого плагина
Код:
<customwidget>
<class>OtherWidget</class>
<extends>QWidget</extends>
<header>OtherWidget.h</header>
</customwidget>
как и должно быть у обоих. При этом widgetname
нигде
у меня в исходниках не встречается. Чего это за хрень? Кто-нибудь такое видел?
Записан
2^7-1 == 127, задумайтесь...
carrygun
Гость
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #1 :
Октябрь 18, 2016, 08:18 »
Скорее всего IDE так делает. Например, при создании классов в креаторе они создадутся на диске в нижнем регистре. Думаю для кроссплатформенности это дело сделано, так как в линуксах "widgetname.h" и "OtherWidget.h" - два разных файла.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #2 :
Октябрь 18, 2016, 10:54 »
Кроссплатформенность???... Эта фича ОТРИЦАТЕЛЬНО влияет на кроссплатформенность. В Windows компилятор слопал бы #include "widgetname.h" при том, что сам файл назывался бы WidgetName.h. А потом при переносе в Linux вылетела бы ошибка. Но я делаю в Linux и наткнулся сразу. НЕ ДОЛЖНО БЫТЬ такой фичи. Имена инклюдам даю я, и среда не имеет права их переделывать. Кстати, в самом Qt сплошь и рядом инклюды имеют символы верхнего регистра в именах инклюдов, и это вполне кроссплатформенно.
ИМХО - это баг дизайнера.
Записан
2^7-1 == 127, задумайтесь...
Bepec
Гость
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #3 :
Октябрь 18, 2016, 11:16 »
Код:
QString CButtonPlugin::includeFile() const
{
return QLatin1String("cbutton.h");
}
Насколько я помню вооон оттуда берутся все инклуды. Так что где то у вас там закавыка.
PS дизайнер тупой, он сам ничего не добавляет. Всем рулит плагин.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #4 :
Октябрь 18, 2016, 14:29 »
Цитата: Bepec от Октябрь 18, 2016, 11:16
Код:
QString CButtonPlugin::includeFile() const
{
return QLatin1String("cbutton.h");
}
Насколько я помню вооон оттуда берутся все инклуды. Так что где то у вас там закавыка.
PS дизайнер тупой, он сам ничего не добавляет. Всем рулит плагин.
Там всё тупо, никаких преобразований, в обоих случаях одинаково:
QString WidgetName::includeFile() const
{
return "WidgetName.h";
}
и
QString OtherName::includeFile() const
{
return "OtherName.h";
}
имена разумеется в реальности другие, но принцип этот же.
Записан
2^7-1 == 127, задумайтесь...
Bepec
Гость
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #5 :
Октябрь 19, 2016, 18:23 »
Дизайнер ничего в общем то не меняет. Он просто подставляет в шаблон эти получаемые строки. Так что ошибка где то у вас.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #6 :
Октябрь 19, 2016, 18:28 »
Цитата: Bepec от Октябрь 19, 2016, 18:23
Дизайнер ничего в общем то не меняет. Он просто подставляет в шаблон эти получаемые строки. Так что ошибка где то у вас.
В исходниках нет. Потому что исходники плагина (включая проект), у которого имя инклюда коверкается, получены из исходников плагина, в котором всё в порядке, путем копирования и простой замены имён. Всё. Если где-то в настройках... то облазил всё, не нашел. Пришлось просто переименовать инклюд в нижний регистр, и соответственно изменить все отсылки на него в исходниках и проекте.
Подозреваю, что всё-таки глюк дизайнера, лишний lowercase где-то.
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Нижний регистр в имени инклюда плагина дизайнера
«
Ответ #7 :
Ноябрь 03, 2016, 01:46 »
Лазил по настройкам - и где-то вывалилось окно, в котором задавалось имя того саиого инклюда, и оно было написано в нижнем регистре. Решил уже не переделывать.
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...