Qt TableWidget (キュート テーブルウィジェット)
// メイン
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// ラベル1のlineEditに文字を表示する。
ui->lineEdit->setText(“TEST”);
//——————————
//ボタンイベント登録
//——————————
QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(clickPshBtn()));
//——————————
//テーブル生成
//——————————
QTableWidget* tblWdgt;
tblWdgt = ui->tableWidget;
// クリア
tblWdgt->clear();
// テーブルの列数、行数を設定する
tblWdgt->setColumnCount( D_MAX_COL );
tblWdgt->setRowCount( D_MAX_ROW );
// 列のタイトル設定
tblWdgt->setHorizontalHeaderLabels(
QStringList()
<< tr(“Title 1″)
<< tr(“Title 2″ )
<< tr(“Title 3″ )
<< tr(“Title 4″ )
<< tr(“Title 5″) );
//——————————
//テーブルプロパティ設定
//——————————
//セル選択不可にする場合
tblWdgt->setSelectionMode(QAbstractItemView::NoSelection);
//いわゆるExcelみたいなタイプ。Ctrl+クリックで飛び地の選択も可能。
tblWdgt->setSelectionMode(QAbstractItemView::ExtendedSelection);
//ダブルクリックでの編集不可にする
tblWdgt->setEditTriggers(QAbstractItemView::NoEditTriggers);
//カラム[0]の列幅設定
tblWdgt->setColumnWidth(COL_1,100);
// 選択したセルの色をデフォルトのグレーから変更する
// 親のカラーパレットを取得し変更する
//Qt::red, Qt::blue, Qt::green, Qt::yellow, Qt::magenta, Qt::cyan
QPalette palette = tblWdgt->palette();
palette.setColor(QPalette::Highlight, Qt::red);//現在選択されている項目の背景色
palette.setColor(QPalette::HighlightedText,Qt::green);//現在選択されている項目の文字色
tblWdgt->setPalette(palette);
}
//追加ボタンイベント
void MainWindow::clickPshBtn()
{
QTableWidget* tblWdgt = ui->tableWidget;
//最大行数の場合、先頭行の削除
if(m_row >= D_MAX_ROW){
tblWdgt->removeRow(0);
m_row–;
//最終行追加
tblWdgt->insertRow(m_row);
}
//データを追加する
count++;
QTableWidgetItem *item[COL_MAX];
item[COL_1] = new QTableWidgetItem(QString(“data1 #%8.0f”).arg(0.1));
item[COL_2] = new QTableWidgetItem(QString(“data2 #%1″).arg(count));
item[COL_3] = new QTableWidgetItem(QString(“data3 #%1″).arg(count));
item[COL_4] = new QTableWidgetItem(QString(“data4 #%1″).arg(count));
item[COL_5] = new QTableWidgetItem(QString(“data5 #%1″).arg(count));
for(int ncol=0;ncol<COL_MAX;ncol++){ tblWdgt->setItem(m_row, ncol, item[ncol]);}
// 指定したアイテム(行)までスクロール(列は未指定)
QTableWidgetItem *pItem = tblWdgt->item( m_row, 0 );
tblWdgt->scrollToItem( pItem );
//行インクリメント
m_row++;
}
0 件のコメント:
コメントを投稿