2011年12月18日日曜日

( Qt C++ )アイテムビューのコンビニエンスクラス(QTableWidget)を使う


最近NetBeansでハマった。ほんとini設定とかどうにかならんかな。くだらん設定くらい自動でやってくれよ。デバック環境の手動インストールとか今の時代だれが得するんだよ...。おれの○時間を返せよチクショウ...。

はい今回はQTableWidgetを使います。※コンビニエンスクラスの説明は前回説明
サンプルはC++ GUI Programming with Qt4のは使わず独自のものを使います。
ではコードを

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)//uiにはGUI部品類が記述
{
    ui->setupUi(this);//uiでGUI部品初期化

    QStringList list;//QTableWidgetのヘッダ部に使う
    list<<"LineName" << "*2";
   
    ui->tableWidget->setRowCount(10);//行数セット
    ui->tableWidget->setColumnCount(2);//列数セット
    ui->tableWidget->setHorizontalHeaderLabels(list);//先ほどのヘッダ(list)セット
   
    for(int row = 0; row < 10; row++)
    {
        QTableWidgetItem *newItem1 = new QTableWidgetItem(tr("%1line").arg(row));
        QTableWidgetItem *newItem2 = new QTableWidgetItem(tr("%1").arg(row*2));
        ui->tableWidget->setItem(row, 0, newItem1);//アイテムのセット
        ui->tableWidget->setItem(row, 1, newItem2);
    }
}

※uiについてはいつもの通りです。GUI部品に関する定義が書かれているだけです。

簡単ですね。コメントの通りです。tr("%1").arg(...)は書式にargで指定された引数を代入するというものです。
実行すると以下のようになります。
 
以上です。