gpt4 book ai didi

qt - 帮助在 Qt 的 rowInserted 信号后获取插入的数据

转载 作者:行者123 更新时间:2023-12-04 07:05:14 28 4
gpt4 key购买 nike

我有一个连接到 QAbstractItemModel 的 rowsInserted SIGNAL 的 onText 方法,因此可以在插入新行时收到通知:

QObject::connect(model, SIGNAL(rowsInserted ( const QModelIndex & , int , int  )  ),
client_,SLOT(onText( const QModelIndex & , int , int )) )

信号工作正常,因为我在插入行时收到通知。这是 onText 方法:
void FTClientWidget::onText( const QModelIndex & parent, int start, int end ) 
{
Proxy::write("notified!");

if(!parent.isValid())
Proxy::write("NOT VALID!");
else
Proxy::write("VALID");

QAbstractItemModel* m = parent.model();


}

但我似乎无法从插入的项目中获取字符串。传递的 QModelIndex "parent"无效,并且 "m"QAbstractItemModel 为 NULL。我认为这是因为它不是一个实际的项目,而只是一个指向一个项目的指针?如何获取插入的文本/元素?

最佳答案

由于父项对于顶级项目无效,另一种选择是让 FTClientWidget 访问模型(如果它不违反您的预期设计),然后 FTClientWidget 可以直接在模型本身上使用开始和结束参数:

void FTClientWidget::onText( const QModelIndex & parent, int start, int end ) 
{
//Set our intended row/column indexes
int row = start;
int column = 0;

//Ensure the row/column indexes are valid for a top-level item
if (model_->hasIndex(row,column))
{
//Create an index to the top-level item using our
//previously set model_ pointer
QModelIndex index = model_->index(row,column);

//Retrieve the data for the top-level item
QVariant data = model_->data(index);
}
}

关于qt - 帮助在 Qt 的 rowInserted 信号后获取插入的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1202182/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com