Russian Qt Forum
Март 28, 2024, 18:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 ... 7   Вниз
  Печать  
Автор Тема: [АРХИВ] Вопросы по QtCreator.  (Прочитано 49105 раз)
Bepec
Гость
« : Май 28, 2016, 10:38 »

Приветствую заглянувших.
Собственно хочется создать сборничек частых вопросов и ответов по данной IDE. Ну и заодно подстроить среду под себя, под мудрым  руководством Веселый

Внимание.
Создать FAQ не получилось, по причине холивара и отсутствия людей, знающих решения проблем.
Потому тема была перенесена в Говорилку (что вообще печально), и мной больше вестись не будет (увы).


Вопросы:
1) при двойном нажатии на ui файл открывается вкладка Дизайн. После окончания работы в нём, нажав кнопку ли Esc, или же переключившись на вкладку "Редактор" мы получаем кишки этого самого файла.
Можно ли "убрать" этот файл, чтобы после окончания работы открывался последний файл который и был открыт ДО редактирования дизайна?
Закрывать форму сочетанием Ctr+W.

2) при запуске отладки и наличии хотя бы 1 сработавшей контрольной точки, включается вкладка "Отладка". И после закрытия / остановки отладки вкладка остаётся активной.
Можно ли сделать автоматическое переключение вкладки на "правка", после закрытия/остановки отладки?
Настройки-Отладчик-Основное-Переключаться в предыдущий режим при завершении отладчика

3) самая встречаемая проблема - русские кракозябры в окне "Вывод приложения". (Проше хейтеров кириллицы унять свои чувства, ну или привести и чуства И решение Улыбающийся ). То, что работало в Qt4, в пятерке упразднено Улыбающийся
Как заставить QtCreator под Windows выводить кириллицу в окно "Вывод приложения"?

4) Столкнулся с тем, что при переносе проекта и/или копировании, каталог теневой сборки остаётся старым.
Т.е. при переносе приложения из "d:/1" в "d:/2", каталог теневой сборки остаётся "d:/1". Соответственно начинается путаница, а при переносе проектов с других компьютеров, так и создание "левых" папок.
Как заставить QtCreator рассчитывать каталоги теневой сборки от ТЕКУЩЕГО каталога проекта?

5) Работа программиста состоит из множества стандартных повторяющихся действий. И если в других IDE были подвижки в эту сторону, в креаторе этого недостаёт.
Существует ли уже "плагин" для QtCreator'a для записи и программирования сценариев действий? (сценарии редактирования текста суть обычные шаблоны, так что не учитывается)

6) Создал сценарий редактирования текста, сохранил. И не нашёл нигде ни их списка, ни способы вызвать/выполнить.
Где их можно посмотреть/отредактировать и как их вызывать?
Просмотреть список сохраненных сценариев можно в настройках быстрых клавиш. Там же можно и назначить сценарий на кнопку. Жутко неудобно, видимо на менеджер желания не хватило Веселый


7) Основная панель пустует, жалкие 5 кнопок, из которых 2 не используются никогда. Хотелось бы больше возможностей для быстрого вызова каких-либо "действий" или утилит.
Есть ли плагин для QtCreator для добавления/удаления кнопок на основную панель с назначением различных функций?

Всё что вспомнил на данный момент. Заранее благодарю за мудрость, что вы выльете в эту тему Улыбающийся

update 31/05/2016:
Видимо плагинов к креатору тупо нет, так же как и непонятна фиксированная установка теневой папки. И это печально Улыбающийся

« Последнее редактирование: Июнь 03, 2016, 23:43 от Bepec » Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #1 : Май 28, 2016, 10:56 »

3. Сейчас на win10 в Qt Creator 4.0.0 "кракозябр" не наблюдается.
Там где все равно кракозябры,  можно попробовать использовать qPrintable(const QString &str) или qUtf8Printable(const QString &str).
Записан
Bepec
Гость
« Ответ #2 : Май 28, 2016, 11:06 »

Интересует именно решение проблемы, а не костыли Улыбающийся
При желании можно написать ф-цию обработки и перевода в cp1251, т.к. именно в этом похоже проблема, но. Но хочется сделать "из коробки" и без костылей. Чтобы написав qDebug() << "Привет мир", получить "Привет мир".
Ранее для этого был QTextCodec::forLocaleCString как то так, но в пятерке его вырезали.
« Последнее редактирование: Май 28, 2016, 12:25 от Bepec » Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #3 : Май 28, 2016, 14:29 »

1) при двойном нажатии на ui файл открывается вкладка Дизайн. После окончания работы в нём, нажав кнопку ли Esc, или же переключившись на вкладку "Редактор" мы получаем кишки этого самого файла.
Можно ли "убрать" этот файл, чтобы после окончания работы открывался последний файл который и был открыт ДО редактирования дизайна?

Закрытие файла: Ctr+W

2) при запуске отладки и наличии хотя бы 1 сработавшей контрольной точки, включается вкладка "Отладка". И после закрытия / остановки отладки вкладка остаётся активной.
Можно ли сделать автоматическое переключение вкладки на "правка", после закрытия/остановки отладки?

Настройки:
Debugger/General/Switch to previous mode on debugger exit
ещё подходящие:
Debugger/General/Close temporary * views on debugger exit
Записан

Пока сам не сделаешь...
Bepec
Гость
« Ответ #4 : Май 28, 2016, 15:27 »

Добавил
Записан
Apktyc
Самовар
**
Offline Offline

Сообщений: 129


Просмотр профиля
« Ответ #5 : Май 28, 2016, 20:09 »

Как заставить QtCreator рассчитывать каталоги теневой сборки от ТЕКУЩЕГО каталога проекта?
Через настройку DESTDIR (и может быть всего скопа OBJECTS_DIR, MOC_DIR, RCC_DIR, ... по-желанию) в .pro файле, относительно PWD (OUT_PWD).
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Май 29, 2016, 01:02 »

3. Чувства: никакой кириллицы в ИСХОДНИКАХ. Never!
Решение: собственно, никакой кириллицы в ИСХОДНИКАХ Улыбающийся

4. Убить временные файлы типа что_то_там.user* из каталога с pro-файлов и переоткрыть проект. При открытии креатор предложит указать каталог сборки заново.

5. Какие именно действия Вас интересуют? Можно просто копировать готовые шаблоны и править поиском-заменой.



Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #7 : Май 29, 2016, 04:37 »

3. Чувства: никакой кириллицы в ИСХОДНИКАХ. Never!
Решение: собственно, никакой кириллицы в ИСХОДНИКАХ Улыбающийся


Кириллица в окно "Вывод приложения" попадает не только из исходников.
Записан
Bepec
Гость
« Ответ #8 : Май 29, 2016, 10:08 »

to Racheengel:
3. Кириллица нужна, претензия не принимается. Комментарии, лог должны быть на понятном пользователю языке и точка. Мы не в англии и не в америке. Более того, добавили кодировку исходников UTF8, так почему же вывод с кракозябрами. Это - некачественная работа и баг, а не "правило".

4. Нет, я это понимаю, но по другому никак? Неужели нет кнопочки "переоткрыть" или что то типа того?

5. сценарии основанные на анализе данных. Навскидку - добавление необходимых Qt-шных хедеров, рефакторинг функций, автоматическое связывание сигналов-слотов двух классов, вставка циклов обхода, присущих классу-контейнеру(не надо мне про auto писать, я знаю).
Т.е. цель по 5 пункту вообще убрать этот ручной нелепый труд. Не с поиском заменой метаться по файлам, тем более что логика этих действий чрезвычайно проста, а просто нажать кнопку.

to Apktyc:
Не катит, теневая папка устанавливается при первом открытии проекта.
Записан
Apktyc
Самовар
**
Offline Offline

Сообщений: 129


Просмотр профиля
« Ответ #9 : Май 29, 2016, 10:56 »

to Apktyc:
Не катит, теневая папка устанавливается при первом открытии проекта.

Попробуйте это Sharing Project Settings
В примерно такой конфигурации:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<qtcreator>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">../my_shadow_build_directory</value>
</valuemap>
</valuemap>
</data>
</qtcreator>
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #10 : Май 29, 2016, 11:23 »

Цитировать
3. Кириллица нужна, претензия не принимается. Комментарии, лог должны быть на понятном пользователю языке и точка. Мы не в англии и не в америке.

1. Кириллицы не должно быть в ИСХОДНИКАХ. Нужен перевод - Qt Linguist в помощь. Проблемы не вижу.

2. Вывод в лог ОТЛАДЧИКА видит только разработчик, но не конечный пользователь. Он и не должен это видеть. Поэтому проблемы здесь нет. Вывод в лог Вашего ПРИЛОЖЕНИЯ с логом креатора ничего общего не имеет, это другой совершенно контекст.

3. Понимаю, возможно у Вас вывод в лог из какой-либо базы данных и т.д. для отладки. Кракозябры там, конечно, неприятны. Это как бы баг, да. А когда в ТЕКСТОВУЮ консоль выводите - тоже кракозяберы появляются?

Цитировать
добавление необходимых Qt-шных хедеров

Боюсь, подобный функционал будет в разы тормозить разработку - ведь каждый раз перед компиляцией креатор должен будет заново распарсить все измененные и зависимые от них файлы, чтобы понять, что добавить, а что убрать. Хотя фича сама по себе бы не помешала, но обычно Вы и так знаете, что инклудить, да и сколько времени на это тратится? Совсем мало.

Цитировать
рефакторинг функций

Ну, креатор умеет создать имплементацию по хедеру, переопределить параметры после изменения, переименовывать функции. Что еще можно придумать..

Цитировать
автоматическое связывание сигналов-слотов двух классов

Тут вообще не понял. По какому принципу это должно работать? Откуда креатор должен понять, что с чем и где Вы хотите сконнектить?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #11 : Май 29, 2016, 12:07 »

3. запускать программу в релизе, будет нормально отображаться кириллица
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #12 : Май 29, 2016, 22:25 »


1. Кириллицы не должно быть в ИСХОДНИКАХ. Нужен перевод - Qt Linguist в помощь. Проблемы не вижу.

2. Вывод в лог ОТЛАДЧИКА видит только разработчик, но не конечный пользователь. Он и не должен это видеть. Поэтому проблемы здесь нет. Вывод в лог Вашего ПРИЛОЖЕНИЯ с логом креатора ничего общего не имеет, это другой совершенно контекст.



1. Кто сказал что не должно быть ? Qt Linguist умеет переводить в любую сторону. Проблем не вижу.

2. Я разработчик, хочу видеть в отладке русский язык, нельзя ?
Недавно же был случай с qDebug() где кутешнеги выпилили вывод не английских символов, но потом им указали, что они не правы и они вернули.

Записан
Bepec
Гость
« Ответ #13 : Май 30, 2016, 00:00 »

Racheengel, вы путаете запуск утилиты при компиляции и выполнение сценария по требованию.

Цитировать
добавление необходимых Qt-шных хедеров
Написал код, реализацию функций накидал, теперь... теперь нужно херачить хедер инклудов, или же при каждом добавлении нового класса переключаться в ашник, набирать там #include и так далее. А я вижу это как "нажал кнопку", оно за ~100мс выполнило анализ по списку и добавила нужные хедеры. И всё.

Цитировать
рефакторинг функций
Полноценный рефакторинг. Добавить реализацию, добавить реализацию всем ф-циям, переименовывание, приведение объявления и реализации к единому виду, расстановка реализаций в соответствии с хедером и наоборот. 

Цитировать
автоматическое связывание сигналов-слотов двух классов
Очень просто. Создать подходящие слоты для сигналов и список коннектов для двух указанных классов. С соотношением от одного ко второму или совместное.

Собственно если есть плагин для сценариев - это вообще не составляет проблем. А без такого плагина реализация данных "задумок" в виде отдельных утилит приводит к десяткам тупых сообщений креатора и некомфортного использования. 

PS давайте всё же не рассуждать - "зачем", а ответить на приведённые вопросы Улыбающийся
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #14 : Май 30, 2016, 10:11 »

1. Кто сказал что не должно быть ? Qt Linguist умеет переводить в любую сторону. Проблем не вижу.

Попробуйте скормить лингвисту не-ascii файлы (например, с ä и ü), будете удивлены результатом.
Также далеко не все компиляторы корректно работают с не-ascii исходниками.

2. Я разработчик, хочу видеть в отладке русский язык, нельзя ?

qDebug << tr("Here be Russian");

как то так.

Представьте, что у Вас в команде еще индус, немец и китаец. Они какой язык должны видеть?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1] 2 3 ... 7   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.06 секунд. Запросов: 22.