最近用到了QtTreePropertyBrowser,網上搜索到的大同小異,都是轉載來轉載去,最討厭這種轉載來轉載去的,一搜一大把,結果有用的沒幾個,看了半天看的累,下面記錄一下我的問題吧,問題就是實際值是-9291542528,結果顯示的是-2147483647。
首先參考的博客鏈接如下
https://blog.csdn.net/czyt1988/article/details/42423613
出問題的代碼片段如下
for(i=0;i<8;i++)
{
groupItem = m_pVarManagerAd->addProperty(QtVariantPropertyManager::groupTypeId(),QStringLiteral("AD索引")+QString::number(i+1));
item =m_pVarManagerAd->addProperty(QVariant::Int, QStringLiteral("AD通道編號:"));
addAdPropertyMap(groupItem,item,index);
item->setValue(pChannel->bind_road);
item =m_pVarManagerAd->addProperty(QVariant::Double, QStringLiteral("實際值:"));
addAdPropertyMap(groupItem,item,index);
item->setValue((double)pChannel->actual_val);
ui->adProperty->addProperty(groupItem);
pChannel++;
}
其中addAdPropertyMap可以不用理,是添加索參考的map
void MainWindow::addAdPropertyMap(QtProperty *groupItem,QtVariantProperty *item,int &index)
{
groupItem->addSubProperty(item);//add group
// m_id_property[index] = item;//index--->item
m_adproperty_id[item] = index;//item---->index
index++;
}
問題就出在item->setValue((double)pChannel->actual_val);這里,這個actual_val是通信獲得的float資料,在界面顯示例外,除錯時發現是用QtVariantPropertyManager產生的valueChanged 信號
void valueChanged ( QtProperty * property, const QVariant & value )
中的value值取值范圍限定住了,見下圖,因為取值范圍,原始值已經被改變為最小值


不知道哪位大佬研究過這個取值范圍?我先記錄下,現在也沒時間深究了
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/12321.html
標籤:Qt
下一篇:漏洞挖掘基礎(環境搭建)
