Es crea la pàgina amb «= Mètodes: = === void print(QPrinter &printer, const QString &htmlText, const QString &bkend_process_name); === Envia a inprimir un fitxer amb capçalera i peu de pagi...».
 
Cap resum de modificació
Línia 22: Línia 22:
=== void about(QStringList &out, const QStringList &progs, const QString &ident_process_exe, const QString &frend_process_name, const QString &bkend_process_name); ===
=== void about(QStringList &out, const QStringList &progs, const QString &ident_process_exe, const QString &frend_process_name, const QString &bkend_process_name); ===


Ens retorna el text html necessari per introduir a un QMessageBox::about. Per que la imatge surti correctament s'ha de posar al main.cpp, just despres de la declaracio de QApplication, el seguent: Q_INIT_RESOURCE(libresource);
Ens retorna el text html necessari per introduir a un QMessageBox::about. Per que la imatge surti correctament s'ha de posar al main.cpp, just despres de la declaracio de QApplication, el seguent:
Q_INIT_RESOURCE(libresource);


*Se li pasa un QStringList a on es desara el resultat, aquest estara format per dos QStrings, el titol del about i el cos del missatge.
*Se li pasa un QStringList a on es desara el resultat, aquest estara format per dos QStrings, el titol del about i el cos del missatge.
Línia 70: Línia 71:


*Li pasem el tipus d'error.
*Li pasem el tipus d'error.
= Traducció =
Per traduir, primer de tot cal encerclar tots els QStrings que volem traduir amb tr("blablabla").
Despres, dins el directori ...QT/bin trovarem una eina que es diu lupdate. Aquest ens crea un xml amb els strings a traduir
*Farem: lupdate arxiu.pro -ts nom_es_CA.ts on:
**"arxiu.pro" es el projecte de QT
**"nom" es el prefix que posarem a tots els arxius de traduccio (a la nostra eleccio)
**"es" és el codi de pais
**"CA" és el codi de llengua (no obligatori)
***exemples: pepito_es_Ca -> catala; pepito_es -> castella; pepito_fr -> frances
**"ts" es la extensio
Quan ja hem creat els arxius.ts a ...QT/bin trobarem el programa linguist
*Farem linguist *.ts i ens assistira per traduir els QStrings que hem marcat.
Al makefile hem d'afegir aquests *.ts i ens creara binaris *.qm que desara a la carpeta src/resources.
*TSOBJS = pepito_es_CA.ts pepito_es.ts pepito_fr.ts
Finalment per que el programa quedi traduit fem:
QString lang = QProcess::systemEnvironment().filter(QRegExp("^LANG=")).first();
lang = lang.replace(QRegExp("^.*="), "");
QTranslator translator;
translator.load("path/pepito_" + lang);
a.installTranslator(&translator);
on "a" es la nostra QApplication

Revisió del 14:38, 19 ago 2011

Mètodes:

void print(QPrinter &printer, const QString &htmlText, const QString &bkend_process_name);

Envia a inprimir un fitxer amb capçalera i peu de pagina ja predeterminats

  • Se li pasa un QPrinter previament configurat amb un QPrint Dialog.
  • Se li pasa el texte a imprimir en format html.
  • Se li pasa el nom del programa que figurara a la capçalera.


QString preTestFile(const QString &processName, const int &returnPath = 0);

Determina si un programa esta o no al PATH retornant l'error si no el troba (ja formatat per posar en un QMessageBox). Opcionalment, si troba el path, el retorna amb format #:path

  • Se li pasa el nom del programa aque volem executar (sense el path)
  • Si volem posem com a segon parametre un 1 pq ens retorni "#:path" en comptes de "" (si tot va be)


void about(QStringList &out, const QStringList &progs, const QString &ident_process_exe, const QString &frend_process_name, const QString &bkend_process_name);

Ens retorna el text html necessari per introduir a un QMessageBox::about. Per que la imatge surti correctament s'ha de posar al main.cpp, just despres de la declaracio de QApplication, el seguent:

Q_INIT_RESOURCE(libresource);
  • Se li pasa un QStringList a on es desara el resultat, aquest estara format per dos QStrings, el titol del about i el cos del missatge.
  • Se li pasa un QStringlist amb el PATH COMPLERT del frontend i del/s backend/s. ex QStringList() << frend << bkend1 << bkend2 << bkend3;
  • Se li pasa el executable del programa ident (ident)
  • Se li pasa el nom del programa bkend: ex: "Divide"
  • Se li pasa el nom del programa frend: ex: "Divide Qt GUI"


void std2browser(const QByteArray &read, QTextEdit *browser, const QString &color);

Ens desa un trosset del l'stderr o l'stdout (en format QByteArray) al QtextEdit que volguem tot indicant-li el color. Molt util si s'utilitza com a metode que s'executi cada com que el buffer de l'stdout/err contingui informacio.

  • Se li pasa l'stderr o stdout
  • Se li pasa el QTextEdit
  • Se li pasa el color de la lletra


void confBrowser(QTextEdit *browser, const int &colSize = 0);

Molt util per deixar configurat el QTextEdit per a la seva utilitzacio en aquesta llibreria.

  • Se li pasa el QTextEdit
  • Opcionalment li pots pasar el maxim de columnes de caracters que vols que utilitzi (si no se li pasa res, la linia s'adapta a l'ample del QTextEdit)


int getBrowserCols(QTextEdit *browser);

Ens dira el maxim de columnes de caracters que permet el browser amb el tamany actual.

  • Se li pasa el QTextEdit


QString getUserPath();

Ens pasara /opt/sapo/users/USER/ on USER es el nom d'usuari logat


QString processErr2string(const QProcess::ProcessError &err);

Ens retorna un Human readable error

  • Li pasem el tipus d'error.

Traducció

Per traduir, primer de tot cal encerclar tots els QStrings que volem traduir amb tr("blablabla").

Despres, dins el directori ...QT/bin trovarem una eina que es diu lupdate. Aquest ens crea un xml amb els strings a traduir

  • Farem: lupdate arxiu.pro -ts nom_es_CA.ts on:
    • "arxiu.pro" es el projecte de QT
    • "nom" es el prefix que posarem a tots els arxius de traduccio (a la nostra eleccio)
    • "es" és el codi de pais
    • "CA" és el codi de llengua (no obligatori)
      • exemples: pepito_es_Ca -> catala; pepito_es -> castella; pepito_fr -> frances
    • "ts" es la extensio

Quan ja hem creat els arxius.ts a ...QT/bin trobarem el programa linguist

  • Farem linguist *.ts i ens assistira per traduir els QStrings que hem marcat.

Al makefile hem d'afegir aquests *.ts i ens creara binaris *.qm que desara a la carpeta src/resources.

  • TSOBJS = pepito_es_CA.ts pepito_es.ts pepito_fr.ts

Finalment per que el programa quedi traduit fem:

QString lang = QProcess::systemEnvironment().filter(QRegExp("^LANG=")).first();
lang = lang.replace(QRegExp("^.*="), "");
QTranslator translator;
translator.load("path/pepito_" + lang);
a.installTranslator(&translator);

on "a" es la nostra QApplication