極速微網(wǎng)站建設(shè)cms如何做網(wǎng)絡(luò)推廣
一、場(chǎng)景
- 有一個(gè)
QListWidget
的列表; - 里面存放了若干
QListWidgetItem
; - 每個(gè)
QListWidgetItem
與一個(gè)自定義類對(duì)象綁定——通過(guò)QListWidget
的setItemWidget()
實(shí)現(xiàn)。 - 自定義對(duì)象繼承于
QWidget
,且內(nèi)含QPushButton
。
二、bug描述
在該QListWidget
的外層有一個(gè)父組件,假設(shè)類型為TopWidget
,
下面的選擇器無(wú)法選中到與QListWidgetItem
綁定的自定義對(duì)象中的QPushButton
,即使再精確地用上ID選擇器也不會(huì)生效,或者會(huì)產(chǎn)生非常奇怪的結(jié)果。
TopWidget QpushButton{}
三、修正做法
直接使用自定義對(duì)象來(lái)限定,假設(shè)自定義對(duì)象類型為CustomWidget
CustomWidget QPushButton{
}
四、原因推測(cè)
判斷為QListWidget
中是通過(guò)set注入的方式來(lái)與自定義對(duì)象建立聯(lián)系的,
可能不存在正常的父子關(guān)系,導(dǎo)致QSS不能按預(yù)期工作。
使用自定義對(duì)象本身直接限定能夠避免。