次の方法で、QCheckBox を QTableWidget に格納しています。
QCheckBox *checkBox = new QCheckBox();
QWidget *widget = new QWidget();
QHBoxLayout *layout = new QHBoxLayout(widget);
layout->addWidget(checkBox);
layout->setAlignment(Qt::AlignCenter);
layout->setContentsMargins(0,0,0,0);
widget->setLayout(layout);
tableWidget->setCellWidget(row, 2, widget);
次に、次のことをキャッチstateChanged()
しcheckBox
ます。
connect( checkBox, SIGNAL(stateChanged(int)), this, SLOT(checkBoxStateChanged(int)) );
void MainWindow::checkBoxStateChanged(int)
{
QCheckBox * box = qobject_cast< QCheckBox * >( sender() );
if( !box ) {
return;
}
}
今、私は行くことができますQTableWidget
- それはbox->parent()->parent()->parent()
です。その前のオブジェクト、つまりbox->parent()->parent()
is qt_scrollarea_viewport
(それはobjectName()
) です。「ビューポート」の子を検索しました16
QWidgets
が、テーブル内の行数があります。ただし、その子供はQHBoxLayout
とのみQCheckBox
です。どうやら参照はありませんQTableWidgetItem
- 私がいくつかの並列オブジェクト階層にいて、他の階層にいるように見えQTableWidgetItem
ます。本当?アイテムの入手方法は?