SyntaxHighlighter

2013年4月8日月曜日

【Qt】ウィジェット操作(QTableWidget)

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 件のコメント:

コメントを投稿