0
takeTopLevelItem
を使用した後、setItemWidget
は成功しません。 QCheckBox
は表示されません。Qt:使用後にsetItemWidgetが役に立ちません。
しかし、m_pDrawBoxのポイントを更新すると問題ありません。
紛失しているものはありますか?
変更制御属性のようなものを実装したいと思います。 QTreeWidget(m_pTreeProperty)
は、別のコントロールによって変更されます。だから私は古い属性を持って新しい属性をQTreeWidget
にリセットする必要があります。
これは私のコードです:あなたはそれを保存し、それを再度追加する必要がありますので
qtForm::qtForm(QWidget *parent, Qt::WFlags flags): QMainWindow(parent, flags)
{
ui.setupUi(this);
ui.m_pTreeProperty->setColumnCount(2);
QStringList lstStr;
lstStr.clear();
lstStr.append("Property");
lstStr.append("Value");
ui.m_pTreeProperty->setHeaderLabels(lstStr);
QTreeWidgetItem* m_pDrawBoxItem = new QTreeWidgetItem;
QCheckBox* m_pDrawBox = new QCheckBox;
m_pDrawBoxItem->setText(0,"drawbox");
ui.m_pTreeProperty->addTopLevelItem(m_pDrawBoxItem);
ui.m_pTreeProperty->setItemWidget(m_pDrawBoxItem,1,m_pDrawBox);
ui.m_pTreeProperty->takeTopLevelItem(0);
ui.m_pTreeProperty->addTopLevelItem(m_pDrawBoxItem);
--m_pDrawBox = new QCheckBox;
--m_pDrawBoxItem->setText(0,"drawbox");
ui.m_pTreeProperty->setItemWidget(m_pDrawBoxItem,1,m_pDrawBox);
}
ありがとうございました。しかし、私はそれが正しいとは思わない。最初にaddTopLevelItemを呼び出すと、メンバーポイントが送信されます。 takeTopLevelItemはメンバポイントと同じアドレスを返します。あなたのものか私のものかを問わず、同じアドレスで成功しません。 – Kaleidos