Cap resum de modificació
Cap resum de modificació
Línia 3: Línia 3:
=== void print(QPrinter &printer, const QString &htmlText, const QString &bkend_process_name); ===
=== 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
Envia a imprimir un fitxer amb capçalera i peu de pàgina ja predeterminats


*Se li pasa un QPrinter previament configurat amb un QPrint Dialog.
*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 text a imprimir en format html.
*Se li pasa el nom del programa que figurara a la capçalera.
*Se li pasa el nom del programa que figurarà a la capçalera.




Línia 13: Línia 13:
=== QString preTestFile(const QString &processName, const int &returnPath = 0); ===
=== 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
Determina si un programa està 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)
*Se li pasa el nom del programa que 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)
*Si volem posem com a segon parametre un 1 perquè en el cas de testejar el fitxer amb resultat satisfactori ens retorni "#:<path>" en comptes de un QString vuit.




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:
Ens retorna el text html necessari per introduir a un QMessageBox::about. Perquè la imatge surti correctament, s'ha de posar al main.cpp, just despres de la declaracio de QApplication, el seguent:
  Q_INIT_RESOURCE(libresource);
  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 on es desarà el resultat, aquest estarà format per dos QStrings, el títol de la finestra "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 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 executable del programa ident (ident)
*Se li pasa el nom del programa bkend: ex: "Divide"
*Se li pasa el nom del programa bkend: ex: "Divide"
Línia 35: Línia 35:
=== void std2browser(const QByteArray &read, QTextEdit *browser, const QString &color); ===
=== 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.
Ens desa un trosset del l'stderr o l'stdout (en format QByteArray) al QtextEdit que volguem tot indicant-li el color.
Molt útil si s'utilitza com a mètode que s'executi cada cop que el buffer de l'stdout/err contingui informació (el qual retorna les dades en format QByteArray).


*Se li pasa l'stderr o stdout
*Se li pasa l'stderr o stdout
Línia 45: Línia 46:
=== void confBrowser(QTextEdit *browser, const int &colSize = 0); ===
=== void confBrowser(QTextEdit *browser, const int &colSize = 0); ===


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


*Se li pasa el QTextEdit
*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)
*Opcionalment li pots pasar el màxim de columnes de caracters que vols que utilitzi (si no se li pasa res, la linia s'adapta a l'ample del QTextEdit)




Línia 54: Línia 55:
=== int getBrowserCols(QTextEdit *browser); ===
=== int getBrowserCols(QTextEdit *browser); ===


Ens dira el maxim de columnes de caracters que permet el browser amb el tamany actual.
Ens dirà el màxim de columnes de caracters que permet el browser amb el tamany actual.


*Se li pasa el QTextEdit
*Se li pasa el QTextEdit
Línia 62: Línia 63:
=== QString getUserPath(); ===
=== QString getUserPath(); ===


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




Línia 68: Línia 69:
=== QString processErr2string(const QProcess::ProcessError &err); ===
=== QString processErr2string(const QProcess::ProcessError &err); ===


Ens retorna un Human readable error
Ens retorna un Human readable error a partir del codi d'error d'un QProcess


*Li pasem el tipus d'error.
*Li pasem el tipus d'error.
Línia 74: Línia 75:
= Traducció =
= Traducció =


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


Despres, dins el directori ...QT/bin trovarem una eina que es diu lupdate. Aquest ens crea un xml amb els strings a traduir
Després, 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:
*Farem: lupdate arxiu.pro -ts nom_es_CA.ts on:
**"arxiu.pro" es el projecte de QT
**"arxiu.pro" es el projecte de QT
**"nom" es el prefix que posarem a tots els arxius de traduccio (a la nostra eleccio)
**"nom" és el prefix que posarem a tots els arxius de traducció (a la nostra elecció)
**"es" és el codi de pais
**"es" és el codi de pais
**"CA" és el codi de llengua (no obligatori)
**"CA" és el codi de llengua (no obligatori)
***exemples: pepito_es_Ca -> catala; pepito_es -> castella; pepito_fr -> frances
***exemples: pepito_es_CA -> català; pepito_es -> castella; pepito_fr -> frances
**"ts" es la extensio
**"ts" és la extensió


Quan ja hem creat els arxius.ts a ...QT/bin trobarem el programa linguist
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.
*Farem linguist *.ts i ens assistirà 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.
Al makefile hem d'afegir aquests *.ts i ens crearà binaris *.qm que desarà a la carpeta src/resources.
*TSOBJS = pepito_es_CA.ts pepito_es.ts pepito_fr.ts
*TSOBJS = pepito_es_CA.ts pepito_es.ts pepito_fr.ts


Finalment per que el programa quedi traduit fem:
Finalment perque el programa quedi traduit fem:


  QString lang = QProcess::systemEnvironment().filter(QRegExp("^LANG=")).first();
  QString lang = QProcess::systemEnvironment().filter(QRegExp("^LANG=")).first();
Línia 103: Línia 104:
= Crear un fitxer de projecte QT .pro =
= Crear un fitxer de projecte QT .pro =


Anem a svn/svn.cadt.com/"programa"/versions/"versio"/src
Anem al directori src del nostre programa:
executem ...QT/bin/qmake -project
executem ...QT/bin/qmake -project


on: ...QT es el directori on tenim instalat el qt
on: ...QT es el directori on tenim instalat el qt

Revisió del 16:09, 19 ago 2011

Mètodes:

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

Envia a imprimir un fitxer amb capçalera i peu de pàgina ja predeterminats

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


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

Determina si un programa està 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 que volem executar (sense el path)
  • Si volem posem com a segon parametre un 1 perquè en el cas de testejar el fitxer amb resultat satisfactori ens retorni "#:<path>" en comptes de un QString vuit.


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. Perquè 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 on es desarà el resultat, aquest estarà format per dos QStrings, el títol de la finestra "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 útil si s'utilitza com a mètode que s'executi cada cop que el buffer de l'stdout/err contingui informació (el qual retorna les dades en format QByteArray).

  • 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);

Necessari per deixar configurat el QTextEdit per a la seva utilització en aquesta llibreria.

  • Se li pasa el QTextEdit
  • Opcionalment li pots pasar el màxim 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 dirà el màxim de columnes de caracters que permet el browser amb el tamany actual.

  • Se li pasa el QTextEdit


QString getUserPath();

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


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

Ens retorna un Human readable error a partir del codi d'error d'un QProcess

  • Li pasem el tipus d'error.

Traducció

Per traduir, primer de tot cal encerclar tots els QStrings que volem traduir amb tr(<QString>).

Després, 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" és el prefix que posarem a tots els arxius de traducció (a la nostra elecció)
    • "es" és el codi de pais
    • "CA" és el codi de llengua (no obligatori)
      • exemples: pepito_es_CA -> català; pepito_es -> castella; pepito_fr -> frances
    • "ts" és la extensió

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

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

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

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

Finalment perque 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

Crear un fitxer de projecte QT .pro

Anem al directori src del nostre programa: executem ...QT/bin/qmake -project

on: ...QT es el directori on tenim instalat el qt