qt arm下快速滾動滑鼠滾輪導致程式假死

2021-10-08 07:35:24 字數 940 閱讀 3040

在hisi3531d環境下做開發,遇到了非常奇怪的現象,當滑鼠滾輪在qt程式上快速滾動的時候,程式直接不接受滑鼠事件了,包括滑鼠的左右按鈕,滾輪、移動等事件均無反應,最終檢視qws底層滑鼠模組**,找到解決方案!

下面是所需要修改的**,**位置在src/gui/embedded/qmousepc_qws.cpp

修改1  retries由原來的2加大一些,可自己測試 

void qwspcmousehandlerprivate::readmousedata(int fd)

else if (retries < 10)

}

修改2    qwspcmousesubhandler 

class qwspcmousesubhandler

void initresetbadness()

void addonetorestbadness()

int takewheel()

修改3  qwspcmousehandlerprivate::sendevent

bool qwspcmousehandlerprivate::sendevent(qwspcmousesubhandler& h)

handler->limittoscreen(newpos);

qdebug("qwspcmousehandlerprivate::sendevent true");

handler->mousechanged(newpos, h.buttonstate(), h.takewheel());

return true;

} else

if (h.buttonstate() & (qt::rightbutton|qt::midbutton))

return false;

}}

滑鼠滾輪滾動事件wheel

滑鼠的滾輪事件主要有兩種 deltay detail wheeldelta deltamode detail deltax,滑鼠滾輪左右擺動,本屬性是唯讀的。負值,向左 正值,向右。正負方向,跟系統的x座標保持一致。deltay,滑鼠滾輪上下滾動,唯讀。負值,向上 正值,向下。deltamode,屬...

C panel控制項實現滑鼠滾輪滾動拖動滾動條

實驗中panel名稱為pnl suggest 介面初始化時新增panel滑鼠滾動相應 this.pnl suggest.mousewheel new mouseeventhandler formsample mousewheel 滑鼠滾動相應函式 void formsample mousewheel...

滑鼠滾輪控制panel滾動條

在winform開發中,通過設定panel的autoscroll屬性來控制滾動條是否顯示,但顯示滾動條的時候,滑鼠的滾輪是無法控制panel裡面的滾動條的,只能控制form的滾動條,當我們需要控制panel的滾動條的時候,應該怎麼做呢?1 拖乙個panel到form裡面,修改name為panel1,...