Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: pethead от Октябрь 31, 2010, 09:21



Название: [solved]Кросс-сборка: ок, но меню не отображается (русские названия)
Отправлено: pethead от Октябрь 31, 2010, 09:21
пишу на qt приложение в винде.
вот загнал сорцы в убунту, собралось, и работает.
неожиданно видеть свои приложения работающими в линухе. :)
но...
главное меню почему-то не отобразилось? т.е. его попросту нет. есть тулбар, есть остальные виджеты, а меню нет.
убунта 10.10 кстати.
что может быть?
но ведь в Винде меню есть и работает. т.е. как будто нет ошибок.

создается так:

на форме
  <widget class="QMenuBar" name="menuBar" />

далее в сгенеренном коде

Код
C++ (Qt)
public:
   QMenuBar *menuBar;
 
   void setupUi(QMainWindow *QTShellClass)
   {
       menuBar = new QMenuBar(QTShellClass);
       menuBar->setObjectName(QString::fromUtf8("menuBar"));
       QTShellClass->setMenuBar(menuBar);
 
...
// в реализации
   fileMenu = menuBar()->addMenu(QString::fromLocal8Bit("Файл"));
   fileMenu->addAction(exitAction);
 
   itemMenu = menuBar()->addMenu(QString::fromLocal8Bit("&Объект"));
   itemMenu->addAction(deleteAction);
   itemMenu->addSeparator();
   itemMenu->addAction(toFrontAction);
   itemMenu->addAction(sendBackAction);
 
   aboutMenu = menuBar()->addMenu(QString::fromLocal8Bit("&Справка"));
   aboutMenu->addAction(aboutAction);
 


Название: Re: Кросс-сборка: все ок, но главное меню не отображается.
Отправлено: pethead от Ноябрь 02, 2010, 07:06
проблема в следующем:
меню русское и потому не отображается, ни одно меню. всплывающие тоже.
что делать?


Название: Re: Кросс-сборка: все ок, но главное меню не отображается.
Отправлено: Sancho_s_rancho от Ноябрь 02, 2010, 07:42
проблема в следующем:
меню русское и потому не отображается, ни одно меню. всплывающие тоже.
что делать?
Использовать tr() как рекомендуют троли. Вам поможет http://www.qtinfo.ru/sourceencoding или поиск по форуму.
пи.си. То, что вы делаете не называется "кросс".


Название: Re: Кросс-сборка: ок, но меню не отображается (русские названия)
Отправлено: pethead от Ноябрь 02, 2010, 07:52
решено

вообщем с кириллицей была проблема при сборке в linux.
надо в main вставить

QTextCodec *codec = QTextCodec::codecForName("cp1251");
QTextCodec::setCodecForTr(codec);

и везде писать не
QString::fromLocal8Bit("Объект")
а
tr("Объект")

тогда будет кошерно везде!


Название: Re: [solved]Кросс-сборка: ок, но меню не отображается (русские названия)
Отправлено: pethead от Ноябрь 02, 2010, 07:54
То, что вы делаете не называется "кросс".
ну да, да.
че к словам придираться. :) кросс это в одной системе собирать для любой иной системы. знаю я.