LINUX.ORG.RU

[Qt4] createActions. Испытываю комплекс...


0

0

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

// Для себя пока нашёл только один выход, создать массив и описать структуру QAction* его элементов, а затем обработать в цикле. Но это не очень изящно. Вот бы создать такой файлик, типа XML, который бы описывал структуру меню...

Ответ на: комментарий от anterior

> упс...не знаю, я им никогда не пользовался.... Надо попробовать...

Там то же самое, что у тебя, только на xml. Разница в том, что этот файл генерится дезигнером. Код в итоге получится почти такой же, как у тебя сейчас получается.

name_no ★★
()
Ответ на: комментарий от name_no

Да, наверное лучше стоит использовать эту приблуду. Вот только меня вот что смущает в ui_myform.h:
<...>
newAct->setText(QApplication::translate("MainWindow", "&\320\241\320\276\320\267\320\264\320\260\321\202\321\214", 0, QApplication::UnicodeUTF8));
<...>

Строки на подобии этих. То что я писал в дизайнере на русском вот оно вот так его развёртывает в итоге. У меня было проще, tr("какой-то текст"), а в main.cpp я прописывал:
<...>
QTextCodec *codec = QTextCodec::codecForName("UTF8");
QTextCodec::setCodecForTr(codec);
<...>

Нельзя ли изменить поведение этого дизайнера, чтоб он так не делал? :)

anterior
() автор топика
Ответ на: комментарий от anterior

> Нельзя ли изменить поведение этого дизайнера, чтоб он так не делал? :)

Только писать по-английски. Есть мнение, что в исходниках не должно встречаться native language. Если уверен, что кроме тебя никто никогда не будет смотреть исходники - тем более забей. Ну и в-третьих, ui_myform.h - это файл, который генертся только на время компиляции, это временный файл, как и множество других файлов типа moc_* и *.o, которые вообще не нужно никогда открывать и смотреть самому. Распространять нужно myform.ui, он должен лежать в проекте и смотреть его следует только дезигнером. Так что проблемы вроде как и нет.

name_no ★★
()
Ответ на: комментарий от name_no

Да, если бы я делал какую-то практически полезную программу, а не дипломную, которую в лучшем случае будут использовать в пределах университета, то наверное писал бы на английском, а потом бы переводил при помощи QtLinguist, но в моём случае это будет делать не рационально, поэтому так и оставим.

Спасибо!

anterior
() автор топика
Ответ на: комментарий от anterior

У тебя всегда есть вариант взять ui_myform.h и переписать его как нравится, выкинув полностью myform.ui

name_no ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.