Bonjour,
Je voudrais comprendre le fonctionnement de la fonction
encode_pos(int row, int col) dans le bout de code ci-dessous. La fonction est ensuite utilisée dans la méthode
SpreadSheet::updateStatus(QTableWidgetItem *item) à la ligne 22.
#include <QtGui>
static QString encode_pos(int row, int col) {
return QString(col + 'A') + QString::number(row + 1);
}
// ...
SpreadSheet::SpreadSheet(int rows, int cols, QWidget *parent)
: QMainWindow(parent)
{
//...
addToolBar(toolBar = new QToolBar());
cellLabel = new QLabel(toolBar);
toolBar->addWidget(cellLabel);
table = new QTableWidget(rows, cols, this);
// ...
void SpreadSheet::updateStatus(QTableWidgetItem *item)
{
if (item && item == table->currentItem()) {
statusBar()->showMessage(item->data(Qt::StatusTipRole).toString(), 1000);
cellLabel->setText("Cell: (" + encode_pos(table->row(item), table->column(item)) + ")");
}
}
// ...
}
Voici le résultat de cette fonction (je passe sur la sémantique C++, seul le résultat m'importe) :
// Sélection de la cellule (0,0) :
"Cell: (A1)"
// Sélection de la cellule (1,1) :
"Cell: (A1)"
// Sélection de la cellule (1,3) :
"Cell: (C1)"
// Sélection de la cellule (2,5) :
"Cell: (E2)"
Je ne comprends pas l'instruction de la ligne 4
QString(col + 'A')
sachant que col est un entier
En gros: comment font-il pour traduire 1 en "A", 2 en "B", etc... ???
Pour info: Ce code C++ est issu de la démo "
Spreadsheet" de Qt4. J'essaie de le reproduire en python avec PyQt4.