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

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

Страниц: 1 ... 4 5 [6] 7 8 ... 12   Вниз
  Печать  
Автор Тема: Помогите новичку (совсем новичку)  (Прочитано 85519 раз)
Den2009
Гость
« Ответ #75 : Декабрь 05, 2009, 09:01 »

а на что их исправить надо?
Записан
gmorgunov
Гость
« Ответ #76 : Декабрь 05, 2009, 12:47 »

Вам править ui-файлы не надо. Скорее всего они  повредились при передаче. У меня после правки этих(ui) все собралось, работает. Покажите свой Makefile. Есть подозрение, что все libgcc.a от minGW
надо прописывать в pro-файле явно и возможно не только это. В assistant-e про статику пишется, что
 надо создавать файлы .prl.
Записан
Den2009
Гость
« Ответ #77 : Декабрь 06, 2009, 02:42 »

MakeFile
Код:
#############################################################################
# Makefile for building: Project
# Generated by qmake (2.01a) (Qt 4.6.0) on: ?? 5. ??? 00:07:26 2009
# Project:  Project.pro
# Template: app
# Command: c:\qt\4.6.0\bin\qmake.exe -spec ..\Qt\4.6.0\mkspecs\win32-g++ -win32 -o Makefile Project.pro
#############################################################################

first: debug
install: debug-install
uninstall: debug-uninstall
MAKEFILE      = Makefile
QMAKE         = c:\qt\4.6.0\bin\qmake.exe
DEL_FILE      = del
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
COPY          = copy /y
COPY_FILE     = $(COPY)
COPY_DIR      = xcopy /s /q /y /i
INSTALL_FILE  = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR   = $(COPY_DIR)
DEL_FILE      = del
SYMLINK       =
DEL_DIR       = rmdir
MOVE          = move
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
SUBTARGETS    =  \
debug \
release

debug: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_default: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug first
debug-all: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
release: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_default: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release first
release-all: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall

Makefile: Project.pro  ../Qt/4.6.0/mkspecs/win32-g++/qmake.conf ../Qt/4.6.0/mkspecs/qconfig.pri \
../Qt/4.6.0/mkspecs/features/qt_functions.prf \
../Qt/4.6.0/mkspecs/features/qt_config.prf \
../Qt/4.6.0/mkspecs/features/exclusive_builds.prf \
../Qt/4.6.0/mkspecs/features/default_pre.prf \
../Qt/4.6.0/mkspecs/features/win32/default_pre.prf \
../Qt/4.6.0/mkspecs/features/debug.prf \
../Qt/4.6.0/mkspecs/features/debug_and_release.prf \
../Qt/4.6.0/mkspecs/features/default_post.prf \
../Qt/4.6.0/mkspecs/features/win32/default_post.prf \
../Qt/4.6.0/mkspecs/features/win32/exceptions_off.prf \
../Qt/4.6.0/mkspecs/features/static.prf \
../Qt/4.6.0/mkspecs/features/warn_on.prf \
../Qt/4.6.0/mkspecs/features/qt.prf \
../Qt/4.6.0/mkspecs/features/win32/thread.prf \
../Qt/4.6.0/mkspecs/features/moc.prf \
../Qt/4.6.0/mkspecs/features/win32/windows.prf \
../Qt/4.6.0/mkspecs/features/win32/stl_off.prf \
../Qt/4.6.0/mkspecs/features/win32/rtti_off.prf \
../Qt/4.6.0/mkspecs/features/resources.prf \
../Qt/4.6.0/mkspecs/features/uic.prf \
../Qt/4.6.0/mkspecs/features/yacc.prf \
../Qt/4.6.0/mkspecs/features/lex.prf \
../Qt/4.6.0/mkspecs/features/include_source_dir.prf \
c:/Qt/4.6.0/lib/qtmaind.prl \
c:/Qt/4.6.0/lib/QtGui.prl \
c:/Qt/4.6.0/lib/QtCore.prl
$(QMAKE) -spec ..\Qt\4.6.0\mkspecs\win32-g++ -win32 -o Makefile Project.pro
..\Qt\4.6.0\mkspecs\qconfig.pri:
..\Qt\4.6.0\mkspecs\features\qt_functions.prf:
..\Qt\4.6.0\mkspecs\features\qt_config.prf:
..\Qt\4.6.0\mkspecs\features\exclusive_builds.prf:
..\Qt\4.6.0\mkspecs\features\default_pre.prf:
..\Qt\4.6.0\mkspecs\features\win32\default_pre.prf:
..\Qt\4.6.0\mkspecs\features\debug.prf:
..\Qt\4.6.0\mkspecs\features\debug_and_release.prf:
..\Qt\4.6.0\mkspecs\features\default_post.prf:
..\Qt\4.6.0\mkspecs\features\win32\default_post.prf:
..\Qt\4.6.0\mkspecs\features\win32\exceptions_off.prf:
..\Qt\4.6.0\mkspecs\features\static.prf:
..\Qt\4.6.0\mkspecs\features\warn_on.prf:
..\Qt\4.6.0\mkspecs\features\qt.prf:
..\Qt\4.6.0\mkspecs\features\win32\thread.prf:
..\Qt\4.6.0\mkspecs\features\moc.prf:
..\Qt\4.6.0\mkspecs\features\win32\windows.prf:
..\Qt\4.6.0\mkspecs\features\win32\stl_off.prf:
..\Qt\4.6.0\mkspecs\features\win32\rtti_off.prf:
..\Qt\4.6.0\mkspecs\features\resources.prf:
..\Qt\4.6.0\mkspecs\features\uic.prf:
..\Qt\4.6.0\mkspecs\features\yacc.prf:
..\Qt\4.6.0\mkspecs\features\lex.prf:
..\Qt\4.6.0\mkspecs\features\include_source_dir.prf:
c:\Qt\4.6.0\lib\qtmaind.prl:
c:\Qt\4.6.0\lib\QtGui.prl:
c:\Qt\4.6.0\lib\QtCore.prl:
qmake: qmake_all FORCE
@$(QMAKE) -spec ..\Qt\4.6.0\mkspecs\win32-g++ -win32 -o Makefile Project.pro

qmake_all: FORCE

make_default: debug-make_default release-make_default FORCE
make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
distclean: debug-distclean release-distclean FORCE
-$(DEL_FILE) Makefile

debug-mocclean: $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean: $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean

debug-mocables: $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables: $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables
FORCE:

$(MAKEFILE).Debug: Makefile
$(MAKEFILE).Release: Makefile
Записан
Den2009
Гость
« Ответ #78 : Декабрь 06, 2009, 02:50 »

а вот сейчас самые интересности:
ради интереса, в креаторе поставил режим сборки release вместо debug и, о, чудо! все заработало. почти все.
Не показывает фото в окне об авторе. Открываю форму в креаторе - показывает, открываю эту же форму в дизайнере - нет фото. у меня с 4.3.3 такое было и счас... в чем проблема???
при сборке QT указывал параметр -libjpeg
Записан
Den2009
Гость
« Ответ #79 : Декабрь 06, 2009, 21:44 »

с картинками разобрался, есть другой вопрос: у меня переключатель рус/англ, по умолчанию галочка стоит на рус, если выбрать англ, то галочки стоят там и там.. как сделать, что бы при переключении языка, галочка тоже переключалась?
коды я выкладывал и ничего там не менял

и еще про интернационализацию:
как мне тут посоветовали, проще сделать так: если русский язык, пишем одно на кнопке, если английский, то другое... так понимаю, для этого надо, чтобы у некоторой переменной менялось значение, чтоб в коде формы написать примерно так:
Код:
..........
if lang=ru {
- <property name="text">
  <string>Программа переводит заданные с клавиатуры</string>
  </property>
  </widget>
- <widget class="QLabel" name="label_2">
- <property name="geometry">
- <rect>
  <x>20</x>
  <y>30</y>
  <width>231</width>
  <height>16</height>
  </rect>
  </property>
- <property name="text">
  <string>секунды в вид ЧЧ:ММ:СС</string>
}
if lang=en {
- <property name="text">
  <string>The program translates the specified keyboard</string>
  </property>
  </widget>
- <widget class="QLabel" name="label_2">
- <property name="geometry">
- <rect>
  <x>20</x>
  <y>30</y>
  <width>231</width>
  <height>16</height>
  </rect>
  </property>
- <property name="text">
  <string>seconds in the form HH:MM:SS</string>
}
.............
так вот, как привязать значение переменной к переключалке языков? а то я до сих пор не очень хорошо разобрался с сигналами и слотами  Грустный
« Последнее редактирование: Декабрь 06, 2009, 21:51 от Den2009 » Записан
Den2009
Гость
« Ответ #80 : Декабрь 06, 2009, 21:56 »

вот я счас тупость написал!!! форма же описывается не на С а на XML..
появился другой вопрос: как передать текст полю/кнопке и т.п.??
Записан
gmorgunov
Гость
« Ответ #81 : Декабрь 07, 2009, 08:45 »

Можно сделать, как в умных книгах пишут, в разделе интернационализации приложений. Хорошо написано у Шлее, Земскова.
А можно по своему:
В редакторе создайте файл language.txt, куда запишите либо 'r' , либо 'e'.
language.txt
Код:
e
Далее создайте get_language.h
Код:
#ifndef  GET_LANGUAGE_H
#define GET_LANGUAGE_H
#include <QFile>

extern char LANG[1];
void getLanguage() {
    QFile file("language.txt");
    file.open(QIODevice::ReadOnly);
    file.read(LANG,1); // read 1 byte ---> LANG[0]
}
#endif // GET_LANGUAGE_H
set_language.h
Код:
#ifndef  SET_LANGUAGE_H
#define SET_LANGUAGE_H
#include <QFile>

extern char LANG[1];
void setLanguage() {
    QFile file("language.txt");
    file.open(QIODevice::WriteOnly);
    file.write(LANG,1); // write 1 byte
}
#endif // SET_LANGUAGE_H
main.cpp
Код:
#include <QtGui>
#include <QtPlugin>
#include "proga1.h"

#include "get_language.h"
char LANG[1];

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
//====================
    getLanguage();
    qDebug() << LANG[0];
//====================
    MainWindow w;
    w.show();
    return app.exec();
}
ui_proga1.h
Код:
...
    menu_3->addAction(kn_log);
//================================================
    extern char LANG[1];
    if (LANG[0]== 'e')
    {
       pushButton->setText("Translate");
       pushButton_2->setText("Close");
       menu_2->setTitle("Language");
       kn_rus->setText("Russian");
       kn_eng->setText("English");
       //  OTHER     
    }
    else
    retranslateUi(MainWindow);
//================================================
...
proga1.h
Код:
...
        connect(pushButton, SIGNAL(clicked()), this, SLOT(rasschet())); //подключаем кнопку рассчет
        connect(kn_about, SIGNAL(triggered()), this, SLOT(about())); // подключаем кнопку о программе
        connect(kn_help, SIGNAL(triggered()), this, SLOT(help())); //подключаем кнопку помощь
        connect(kn_author, SIGNAL(triggered()), this, SLOT(author())); //подключаем кнопку об авторе
        connect(kn_rus, SIGNAL(triggered()), this, SLOT(setRus()));
        connect(kn_eng, SIGNAL(triggered()), this, SLOT(setEng()));
...
proga1.cpp
Код:
#include <QtCore>
#include <QTextCodec>
#include <QtGui>
#include "proga1.h"
#include "proga1_about.h"
#include "proga1_author.h"
#include "proga1_help.h"
#define tr QObject::tr

#include "set_language.h"
extern char LANG[1];

void MainWindow::rasschet()
{
int iS,  oS, notH, notM;  //Объявление переменных
float oH, oM; //Объявление переменных
const int SiH=3600, SiM=60;
QString inSec, outHr, outMin, outSec;
textEdit->clear();
inSec = spinBox->text(); //Ввод
qDebug() << inSec;
iS = inSec.toInt();
qDebug() << iS;
//Вычисление
oH = (iS / SiH); //Количество часов
notH = iS - (oH * SiH); //Убираем количество часов
oM = (notH / SiM); //Количество минут
notM = notH - (oM * SiM); //Убираем количество минут
oS = notM; //Оставшееся число равно количеству секунд

if (LANG[0]=='r'){
   QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
   textEdit->setText(tr("Введенное количество секунд ")+QString::number(iS)  + tr(" соответствует ") + QString::number(oH) + tr(" часам, " ) + QString::number(oM) + tr(" минутам, ") + QString::number(oS) + tr(" секундам"));
}
else {
qDebug() << LANG[0] << "English";
}
}
void MainWindow::about()
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
qDebug() << "MainWindow::about";
qDebug() << this->isModal();
// Главное окно - модальное
// Сделаем его немодальным, т.е. разблокируем дочерние виджеты для ввода
this->setWindowModality(Qt::NonModal);
MyAbout *myabout = new MyAbout;
myabout->show();
}

void MainWindow::help()
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
qDebug() << "MainWindow::help";
qDebug() << this->isModal();
this->setWindowModality(Qt::NonModal);
MyHelp *myhelp = new MyHelp;
myhelp->show();
}

void MainWindow::author()
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
qDebug() << "MainWindow::author";
qDebug() << this->isModal();
this->setWindowModality(Qt::NonModal);
MyAuthor *myauthor = new MyAuthor;
myauthor->show();
}

void MainWindow::setRus()
{
LANG[0] = 'r';
setLanguage();
}
void MainWindow::setEng()
{
LANG[0] = 'e';
setLanguage();
}
Программу надо перезапускать, чтобы переключился язык. В условиях if ... else ... надо дописать англ. текст. У меня все работает.
Записан
mattic
Гость
« Ответ #82 : Декабрь 07, 2009, 15:03 »

Здравствуйте!
Всё таки спрошу здесь. Сразу предупреждаю: вопрос глупый. Но я на этом месте стопорнулся. И никак не продвинусь, что-то мозгов не хватает. Надеюсь Den2009 меня простит
Вообщем есть *.ui файл, в котором описывается главное(единственное окно). В окне присутствуют надпись label и кнопка btn1.  Я создаю слот qint8 detectDay(qint8 date) для реакции на нажатие кнопки. Потом в файле ccp пытаюсь соединить сигнал нажатия кнопки и мой слот connect(btn1, SIGNAL(clicked()), DateBir,SLOT(detectDay(3) )) . Компилятор выдаёт error: `btn1' was not declared in this scope. И это не смотря на наличие в файле срр строчки #include "ui_datebir.h" . Как именно мне надо прописывать кнопку при соединении сигнала и слота?
И еще. Вот я прописал в файле h в разделе public slots свой слот qint8 detectDay(qint8 date), то что этот слот не появляется при редактировании ui(в Редакторе сигналов и слотов) - это нормально? Учебники я читаю, но там что-то не ясен этот вопрос.
Свой миниархив я приложу к посту. Посмотрите, пожалуйста, у кого есть время и желание помочь. Мой слот qint8 detectDay(qint8 date) там конечно не совсем верен и будет сделано совсем по другому. Мне сейчас главное: понять как создавать свой слот и присоединять его к какому сигналу.
« Последнее редактирование: Декабрь 07, 2009, 15:07 от mattic » Записан
gmorgunov
Гость
« Ответ #83 : Декабрь 07, 2009, 19:25 »

Параметры сигнал/слот должны быть согласованы по типу/порядку следования. Вы можете завести свою переменную m_date и через нее передавать параметры в слот. Про креатор не знаю, я им не пользуюсь. .
 datebir.h
Код:
 
#ifndef DATEBIR_H
#define DATEBIR_H

#include <QtGui> // For qDebug() ;

namespace Ui
{
    class DateBir;
}

class DateBir : public QMainWindow{
    Q_OBJECT

public:
    DateBir(QWidget  *parent = 0);

    ~DateBir();

public slots:
    void detectDay(bool );
private:
    Ui::DateBir *ui;
    qint8 m_date;  // <==============
};
datebir.cpp
Код:
#include "datebir.h"
#include "ui_datebir.h"

void DateBir::detectDay(bool blablabla){
    qDebug() << "in slot detectDate()";
    m_date=3; // <===============
    ui->label->setText(QString::number(m_date));

}

DateBir::DateBir(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::DateBir)
{
    ui->setupUi(this);
    connect(ui->btn1, SIGNAL(clicked(bool)), SLOT(detectDay(bool) ));
}

DateBir::~DateBir()
{
    delete ui;
}

« Последнее редактирование: Декабрь 07, 2009, 19:33 от gmorgunov » Записан
mattic
Гость
« Ответ #84 : Декабрь 08, 2009, 13:08 »

Огромное спасибо за ответ!
В принципе вопрос закрыт Улыбающийся Наконец-то я сдвинулся с этой мертвой точки... А то по книге ушёл уже намного дальше главы про события, а сам ещё даже элементарную работу с событиями не разобрал из-за этого непонимания.
Записан
Den2009
Гость
« Ответ #85 : Декабрь 08, 2009, 21:10 »

в общем, интернационализацию делаю с помощью Linguist. Почитал Шлее, в принципе ничего сложного... сделал как там написано, но при компиляции такие ошибки:
Код:
C:/Pr1/proga1.cpp:65: error: prototype for 'void MainWindow::switchLanguage(int)' does not match any in class 'MainWindow'
C:/Pr1/proga1.h:24: error: candidate is: void MainWindow::switchLanguage()

в proga1.h добавил это:
Код:
#ifndef PROGA1_H
#define PROGA1_H
#include <QMainWindow>
#include <QObject>
#include "ui_proga1.h"

class MainWindow : public QMainWindow, Ui::MainWindow // <--------Наследуемся
{
        Q_OBJECT
public:
        MainWindow(QMainWindow* p = 0) : QMainWindow(p)
    {
        setupUi(this);
        connect(pushButton, SIGNAL(clicked()), this, SLOT(rasschet())); //подключаем кнопку рассчет
        connect(kn_about, SIGNAL(triggered()), this, SLOT(about())); // подключаем кнопку о программе
        connect(kn_help, SIGNAL(triggered()), this, SLOT(help())); //подключаем кнопку помощь
        connect(kn_author, SIGNAL(triggered()), this, SLOT(author())); //подключаем кнопку об авторе
        connect(kn_rus, SIGNAL(changed()), this, SLOT(switchLanguage()));
        connect(kn_eng, SIGNAL(changed()), this, SLOT(switchLanguage()));
    }
public slots:
        void rasschet(); // создаем слот рассчет
        void about(); // создаем слот о программе
        void help(); // создаем слот помощь
        void author(); // создаем слот об авторе
        void switchLanguage(); // создаем слот смены языка (это я добавил)
};

#endif
в proga1.cpp
Код:
#include <QtCore>
#include <QTextCodec>
#include <QtGui>
#include "proga1.h"
#include "proga1_about.h"
#include "proga1_author.h"
#include "proga1_help.h"
#define tr QObject::tr

void MainWindow::rasschet()
{
int iS,  oS, notH, notM;  //Объявление переменных
float oH, oM; //Объявление переменных
const int SiH=3600, SiM=60;
QString inSec, outHr, outMin, outSec;
textEdit->clear();
inSec = spinBox->text(); //Ввод
qDebug() << inSec;
iS = inSec.toInt();
qDebug() << iS;
//Вычисление
oH = (iS / SiH); //Количество часов
notH = iS - (oH * SiH); //Убираем количество часов
oM = (notH / SiM); //Количество минут
notM = notH - (oM * SiM); //Убираем количество минут
oS = notM; //Оставшееся число равно количеству секунд
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
textEdit->setText(tr("Введенное количество секунд ")+QString::number(iS)  + tr(" соответствует ") + QString::number(oH) + tr(" часам, " ) + QString::number(oM) + tr(" минутам, ") + QString::number(oS) + tr(" секундам"));
}
void MainWindow::about()
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
qDebug() << "MainWindow::about";
qDebug() << this->isModal();
// Главное окно - модальное
// Сделаем его немодальным, т.е. разблокируем дочерние виджеты для ввода
this->setWindowModality(Qt::NonModal);
MyAbout *myabout = new MyAbout;
myabout->show();
}

void MainWindow::help()
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
qDebug() << "MainWindow::help";
qDebug() << this->isModal();
// Главное окно - модальное
// Сделаем его немодальным, т.е. разблокируем дочерние виджеты для ввода
this->setWindowModality(Qt::NonModal);
MyHelp *myhelp = new MyHelp;
myhelp->show();
}

void MainWindow::author()
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
qDebug() << "MainWindow::author";
qDebug() << this->isModal();
// Главное окно - модальное
// Сделаем его немодальным, т.е. разблокируем дочерние виджеты для ввода
this->setWindowModality(Qt::NonModal);
MyAuthor *myauthor = new MyAuthor;
myauthor->show();
}
// Это добавлено
void MainWindow::switchLanguage (int n)
{
    QTranslator translator;
    switch(n)
    {
    case RUSSIAN:
        translator.load("rus.qm",".");
        break;
    case ENGLISH:
        translator.load("eng.qm",".");
        break;
    }
    app->installTranslator(&translator);
}

main.cpp
Код:
#include <QApplication>
#include <QTranslator>
#include <QtPlugin>

 Q_IMPORT_PLUGIN(qjpeg)
 Q_IMPORT_PLUGIN(qgif)
 Q_IMPORT_PLUGIN(qkrcodecs)

#include "proga1.h"
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MainWindow w;
    w.show();
    return app.exec();
}
остальные файлы без изменений... в чем проблема? и правильно ли подключены переключалки языков?
Записан
gmorgunov
Гость
« Ответ #86 : Декабрь 09, 2009, 01:15 »

Посмотрите, что передается в слот:
Код:
...
void MainWindow::switchLanguage (int n)
{
    qDebug() << n; //<===========
    QTranslator translator;
    switch(n)
    {
    case RUSSIAN:  //<===========
        translator.load("rus.qm",".");
        break;
    case ENGLISH:  //<===========
И в switch() вставьте соотвествующие значения.
Записан
Den2009
Гость
« Ответ #87 : Декабрь 09, 2009, 01:51 »

можно поподробнее? а то я ничего не понял (((
Записан
gmorgunov
Гость
« Ответ #88 : Декабрь 09, 2009, 06:31 »

Закоментируйте все тело слота вот так:
Код:
// Это добавлено
void MainWindow::switchLanguage (int n)
{
    qDebug() << n;  // смотрим n <============

/*
    QTranslator translator;
    switch(n)
    {
    case RUSSIAN:
        translator.load("rus.qm",".");
        break;
    case ENGLISH:
        translator.load("eng.qm",".");
        break;
    }
    app->installTranslator(&translator);
*/
}
Откомпилируйте, запустите. Затем попереключайте рус/англ и посмотрите, что будет выводится в консоли. Далее раскоментируйте и подставьте эти значения в switch. Например:
 ...
switch(n)
{
  case 1
     ... //  загрузка русского перевода
  case 2
     ... //  загрузка англ. перевода
}

Записан
Den2009
Гость
« Ответ #89 : Декабрь 09, 2009, 10:32 »

все равно теже ошибки вылазят... я думаю, что дело в том, что у меня не правильно описан механзм сигналов и слотов:
Код:
connect(kn_rus, SIGNAL(changed()), this, SLOT(swlang()));
        connect(kn_eng, SIGNAL(changed()), this, SLOT(swlang()));
думаю, что надо написать, чтоб эти кнопки меняли значение n, осталось придумать, как это сделать
Записан
Страниц: 1 ... 4 5 [6] 7 8 ... 12   Вверх
  Печать  
 
Перейти в:  


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