設定委託中控制項的樣式的2個注意事項

2021-10-07 05:50:39 字數 1509 閱讀 4477

qwidget* createeditor(qwidget *parent, const qstyleoptionviewitem &option, const qmodelindex &index) const
1.重寫委託的createreditor函式的時候不能去掉const,否則設定樣式不起作用

2.設定下拉框的樣式如下:

"qcombobox"

"qcombobox::drop-down"

"qcombobox::down-arrow"

"qcombobox:disabled"

"qcombobox qabstractitemview"

"qcombobox qabstractitemview::item"

"qcombobox qabstractitemview::item:selected"

"qcombobox qscrollbar::vertical"

"qcombobox qscrollbar::handle::vertical"

"qcombobox qscrollbar::handle::vertical::hover"

"qcombobox qscrollbar::add-line::vertical"

"qcombobox qscrollbar::sub-line::vertical").arg(style_main_color).arg(style_hover_color)

但是發現中間的三條設定qabstractitemview的內容沒有起作用,原因是 qcombobox *editor = new qcombobox(parent); qabstractitemview的樣式被下拉框的父物件qwidget * parent覆蓋掉了

正確的設定方法:

parent->setstylesheet(qstring("qcombobox"

"qcombobox::drop-down"

"qcombobox::down-arrow"

"qcombobox:disabled"

"qcombobox qabstractitemview"

"qcombobox qabstractitemview::item"

"qcombobox qabstractitemview::item:selected"

"qcombobox qscrollbar::vertical"

"qcombobox qscrollbar::handle::vertical"

"qcombobox qscrollbar::handle::vertical::hover"

"qcombobox qscrollbar::add-line::vertical"

"qcombobox qscrollbar::sub-line::vertical").arg(style_main_color).arg(style_hover_color));

直接設定父物件的樣式而不是下拉框的樣式 

自定控制項中的委託

1 委託是函式的指標 2 方法簽名 引數型別 個數 順序 返回值 3 delegate void speakdelegate 定義個委託委託的方法簽名要與想指向 引用 方法的方法簽名要一致 例項化委託 方式1 speakdelegate speak new speakdelegate 方法名 spe...

自定控制項中的委託

1 委託是函式的指標 2 方法簽名 引數型別 個數 順序 返回值 3 delegate void speakdelegate 定義個委託委託的方法簽名要與想指向 引用 方法的方法簽名要一致 例項化委託 方式1 speakdelegate speak new speakdelegate 方法名 spe...

自繪按鈕控制項的2個注意點

1 宣告自繪屬性 有兩種方式,一種是通過資源檢視修改按鈕的屬性,將owner draw改為true 另一種是通過 實現。在重寫的presubclasswindow中新增一句自繪屬性 void cmybutton presubclasswindow 2 繪製按鈕 通過過載虛函式drawitem實現,注...