vendredi 29 janvier 2010

QT4 - Quelques tuyaux utiles:

Bonjour,
Je fais une petite récap. de choses simples mais pas évidentes lorsqu'on débute avec Qt4:

/*=================================================================
* Ecrire des lignes de texte dans un QTextEdit
*==================================================================*/
QTextEdit TextEdit1;
QString str1, str2;
// 1- associer un "QTextCursor"
QTextCursor cursor1(textEdit1->document());
cursor1.movePosition(QTextCursor::Down, QTextCursor::MoveAnchor, 0);
cursor1.select(QTextCursor::LineUnderCursor);
//return cursor1.selectedText();

// 2- écrire les lignes et les terminer par un "\n" (saut de ligne)

cursor1.insertText(str1);
cursor1.insertText("\n"); //saut de ligne

cursor1.insertText(str2);

/*=================================================================
* Lire une ligne de texte dans un QTextEdit
*==================================================================*/

//retourne la ligne i du QTextEdit
QTextEdit TextEdit1;
QString str1;
QTextCursor cursor1(textEdit1->document());
cursor1.movePosition(QTextCursor::Down, QTextCursor::MoveAnchor, i);
cursor1.select(QTextCursor::LineUnderCursor);
str1 = cursor1.selectedText();

/*=================================================================
* Copier tout le contenu d'un QTextEdit
*==================================================================*/
QTextEdit TextEdit1;
TextEdit1 ->copy();

/*=================================================================
* Lire le contenu d'une cellule d'un QTableWidget
*==================================================================*/
QTableWidget TableWidget1
QString texte_lu;
int row = TableWidget1->currentRow(); // ligne courante (par exemple sélectionnée à la souris)
int coll = 2; // par exemple
TableWidget1->setCurrentCell(row,coll); //selectionne la cellule
texte_lu = TableWidget1->currentItem()->text();

/*=================================================================
* Ecrire dans une cellule d'un QTableWidget
*==================================================================*/

QString str1;
int r = TableWidget1->currentRow();
int coll = 2; // par exemple
TableWidget1->setItem(r, coll, new QTableWidgetItem (str1) );

/*=================================================================
* Dessiner (et ecrire) dans un QPixMap
*==================================================================*/

// 1- déclarer et dimensionner le pixmap
QPixmap pixmap1(200,400);
// 2- lui associer un 'QPainter'
QPainter painter1(& pixmap1); // adresse de pixmap1 dans le constructeur
// 3- choisir la couleur du trait et celle de remplissage
painter1.setPen(Qt::cyan);
painter1.setBrush(Qt::white);
// 4- dessiner
painter1.drawEllipse(100,50, 8, 12);
// 5- ecrire:
painter1.drawText("coucou!");
// 5- IMPORTANT: pour rendre le pixmap visible, l'associer à un QLabel! (ou autre widget AYANT un pixmap...)
label1->setPixmap(pixmap1);
// attention: par la suite, ne pas associer un autre pixmap au label, mais toujours copier le même