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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Несколько проблем  (Прочитано 5898 раз)
Trolltux
Гость
« : Ноябрь 06, 2005, 21:27 »

1. При использовании qm не переводятся надписи виджетов формы. Хотя все остальное, что обрабатывается вручную через tr() переводится.
2. При создании нового элемента, появляется несколько пустых строк.

Плиз, гляньте сырцы: http://webfile.ru/616585
Записан
L.Marvell
Гость
« Ответ #1 : Ноябрь 07, 2005, 15:05 »

Из main.cpp не получилось, да и не возился я долго, т.к. в данный момент на работе. Если вписать в first_f.cpp как описано ниже, то работает:

Код:
first_f::first_f():QMainWindow(){
setupUi(this);

QTranslator *translator = new QTranslator;
translator->load("qnote_ru",  ".");
qApp->installTranslator(translator);
retranslateUi(this);
...
}

Ключевая функция - retranslateUi(). Если посмотришь в свой ui_first_f.h, то думаю разберешся зачем она нужна. (Сам недавно мучался, пока добрые люди не подсказали) Подмигивающий
Записан
Trolltux
Гость
« Ответ #2 : Ноябрь 07, 2005, 18:30 »

Спасибо!
Я когда ее из main вызывал она ругалась на класс QMainWindow и почему-то решил забить на нее.
Записан
Trolltux
Гость
« Ответ #3 : Ноябрь 08, 2005, 01:29 »

Блин, другой касяк.
Теперь гуи на русском, а MessageBox'ы на английском...
Записан
Trolltux
Гость
« Ответ #4 : Ноябрь 08, 2005, 01:43 »

Если сделать вот так:

Код:

int main(int argc, char **argv){
QApplication app(argc, argv);

// Установка языка gui
QTranslator translator;
if ( !translator.load("qnote_ru") )
if ( !translator.load("/usr/share/qnote/qnote_ru") )
printf("\nCannot load translate-file. Starting with english gui...\n");
else
app.installTranslator(&translator);
else
app.installTranslator(&translator);
// КБ

first_f f_w;

QObject::connect(&app, SIGNAL(lastWindowClosed()), &f_w, SLOT(exit_bClick()));

f_w.conf.initial();
f_w.conf.readData();
f_w.setViewItems();

f_w.show();
return app.exec();
}


...то  все работает.
Почему перевод в конструкторе не применяется на строки обработанные с помощью tr() в коде?
Записан
L.Marvell
Гость
« Ответ #5 : Ноябрь 08, 2005, 17:35 »

Цитата: "Trolltux"
Блин, другой касяк.
Теперь гуи на русском, а MessageBox'ы на английском...

Поскольку "меседжбоксы" не создавались в дизайнере, то соответственно их текст не попал в retranslateUi(). Из данной ситуации 2 выхода:
1. Грузить файл перевода из main.cpp (как ты и делаешь)
2. Создать собственную функцию аля retranslateStrings() по аналогии с retranslateUi() с текстом "меседжбоксов" и вызывать так же, как и retranslateUi()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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