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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [solved]Кросс-сборка: ок, но меню не отображается (русские названия)  (Прочитано 3070 раз)
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);
 
« Последнее редактирование: Ноябрь 02, 2010, 07:52 от pethead » Записан
pethead
Гость
« Ответ #1 : Ноябрь 02, 2010, 07:06 »

проблема в следующем:
меню русское и потому не отображается, ни одно меню. всплывающие тоже.
что делать?
Записан
Sancho_s_rancho
Гость
« Ответ #2 : Ноябрь 02, 2010, 07:42 »

проблема в следующем:
меню русское и потому не отображается, ни одно меню. всплывающие тоже.
что делать?
Использовать tr() как рекомендуют троли. Вам поможет http://www.qtinfo.ru/sourceencoding или поиск по форуму.
пи.си. То, что вы делаете не называется "кросс".
Записан
pethead
Гость
« Ответ #3 : Ноябрь 02, 2010, 07:52 »

решено

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

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

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

тогда будет кошерно везде!
Записан
pethead
Гость
« Ответ #4 : Ноябрь 02, 2010, 07:54 »

То, что вы делаете не называется "кросс".
ну да, да.
че к словам придираться. Улыбающийся кросс это в одной системе собирать для любой иной системы. знаю я.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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