各位大佬,下面是我使用的QComboBox,代碼如下:
m_comboPro = new QComboBox(this);
m_comboPro->setStyleSheet("QComboBox{border-image:url(:/res/pwd/comboBoxBkg.png);font-family:'SimHei';font-size:13px;color:#003DA6;border: 1px solid gray;}"
"QComboBox QAbstractItemView{background:rgba(255,255,255,1);border:1px solid rgba(228,228,228,1);border-radius:0px 0px 5px 5px;font-size:13px;outline: 0px;}"
"QComboBox QAbstractItemView::item {min-height: 13px;}"
"QComboBox::drop-down{border-left-width: 1px;border-left-color: lightgray;border-left-style: solid; border-top-right-radius: 3px;border-bottom-right-radius: 3px;subcontrol-origin: padding;subcontrol-position: top right; width:18px;}"
"QComboBox::down-arrow{image:url(:/res/pwd/arrowDown0.png)}"
"QComboBox::down-arrow:hover{image:url(:/res/pwd/arrowDown0.png)}"
"QComboBox::down-arrow:pressed{image:url(:/res/pwd/arrowDown0.png)}");
m_comboPro->addItem("你的生日是什么時候?");
m_comboPro->addItem("你的學號是多少?");
QStyledItemDelegate *delegate = new QStyledItemDelegate(this);
m_comboPro->setItemDelegate(delegate);
QImage comboBoxImg(":/res/pwd/comboBoxBkg.png");
m_comboPro->resize(comboBoxImg.size());
m_comboPro->move(this->width()*8/100 + m_labelFst->width(), this->height()*17/100);
connect(m_comboPro, SIGNAL(currentIndexChanged(int)), this, SLOT(slotClickedComboBox(int)));
有什么辦法能讓QComboBox的文字靠左,然后又不是最左端嗎?還有,就是res/pwd/arrowDown0.png向下的箭頭,能不能往右移動一定位置(因為向下箭頭太靠右了,沒有完全顯示)呢?最后,如果不移動視窗QDialog的位置,點擊向下箭頭,它是不會有錯位的現象,但是一旦移動視窗后,點擊向下的箭頭,就會出現選項錯位?有什么辦法解決這些問題嗎? 請給位大佬指點一下,小弟在此不勝感激!
uj5u.com熱心網友回復:
沒有圖不能準確把握你的需求。有什么辦法能讓QComboBox的文字靠左,然后又不是最左端嗎?
默認樣式本就不是在最左邊,會有一定的邊距。
微調 padding-left:2px;可以調整到邊框的距離,數值按需修改。
向下的箭頭,能不能往右移動一定位置(因為向下箭頭太靠右了,沒有完全顯示):是向左吧 - -
down-arrow 是繪制在 drop-down上的。
down-arrow image會隨down-arrow的尺寸等比縮放.
drop-down 設定了寬度為18.
想要down-arrow全部顯示出來,需要指定down-arrow的尺寸,不大于18,
QComboBox::down-arrow
{
widtd:18px;
height:18px;
image:url(:/res/pwd/arrowDown0.png)
}
最后問題,最好有圖
uj5u.com熱心網友回復:
大佬,截圖如下:

如截圖中所示,問題1.QComboBox里的文字能不能往右移動一點點,太靠左側了。
問題2.向下的箭頭能不能往左側移動一點點,因為那個向下的箭頭圖片本來是矩形的,結果由于我不太清楚怎么設定其屬性,因此變成了看起來像三角形一樣,太靠右側了。
問題3.錯位已解決。
最后想實作的效果類似以下截圖:

uj5u.com熱心網友回復:
以下大概是你要的效果,padding的值需要適當調小一點,具體含義就不一一解釋了,建議看下 qt幫助里 The Style Sheet Syntax,里面有比較詳細的介紹也有很多實體。H -- ComboBox height
QComboBox{
max-height:Hpx;
min-height:Hpx;
border-radius:H/2px;
padding-left:H/2px;
}
QComboBox::drop-down{
border:none;
padding-right:H/2px;
width:Hpx;
}
QComboBox::down-arrow/*這里的尺寸設定可結合下拉箭頭圖片的實際尺寸設定,但不要超出drop-down的尺寸范圍 */
{
width:Hpx;
height:Hpx;
}
uj5u.com熱心網友回復:
多謝大佬指點,再多問一個問題,就是
QImage comboBoxImg(":/res/pwd/comboBoxBkg.png");
comboBoxImg.height()的單位是px嗎?因為我想計算出ComboBox height,好像在樣式單里面不能傳遞引數吧。
uj5u.com熱心網友回復:
這里只是變數,你改成實際值就好了轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/273885.html
標籤:Qt
上一篇:各位大佬,Qt android程式怎么設定platform級簽名啊
下一篇:安卓zlib壓縮與解壓縮疑問
