QComboBox使用CC_ComboBox和CE_ComboBoxLabel樣式來繪制帶有不可編輯框的按鈕和標簽。
用戶單擊組合框時彈出的列表是由委托繪制的,在本概述中不介紹。 但是,您可以使用樣式通過子元素SC_ComboBoxListBoxPopup控制列表的大小和位置。
該樣式還決定了可編輯框的編輯字段應在何處使用SC_ComboBoxEditField。 該字段本身是QLineEdit,它是組合框的子級。
我們在Java樣式組合框上顯示圖像,在其中概述了其子元素和子元素矩形:
Java組合框不使用focus rect; 聚焦時會更改其背景顏色。 QComboBox使用SC_ComboBoxEdit字段來計算編輯字段的大小以及用於計算組合框標簽大小的樣式。
組合框的樣式選項是QStyleOptionComboBox。 它可以設置以下狀態:
State | Set When |
---|---|
State_Selected | 該框不可編輯且具有焦點 |
State_Sunken | SC_ComboBoxArrow處於活動狀態 |
State_on | 框的容器(列表)可見 |
其他成員的樣式選項是:
Member | Content |
---|---|
currentIcon | 組合框當前(選定)項目的圖標。 |
currentText | 框中當前項目的文本。 |
editable | 保持組合框是否可編輯 |
frame | 保持組合框是否有框架 |
iconSize | 當前項目圖標的大小。 |
popupRect | 組合框的彈出列表的邊界矩形。 |