2

QComboBoxいくつかの色のオプションでシンプルにしようとしています。これまでに見つけた最も簡単な方法はQPixmap、各アイテムを作成し、色で塗りつぶしてアイテムのアイコンとして使用することでした:

this->colorComboBox = new QComboBox;
this->colorComboBox->setIconSize(QSize(100, 15));
QPixmap colorIcon(100, 15);
this->colorList.push_back(QColor(255, 255, 255, 255));
this->colorList.push_back(QColor(194, 169, 160, 255));
this->colorList.push_back(QColor(235, 206, 157, 255));
this->colorList.push_back(QColor(254, 121,   5, 255));
this->colorList.push_back(QColor(255, 195,  78, 255));
this->colorList.push_back(QColor(111, 203, 172, 255));
for(unsigned int i = 0; i < this->colorList.size(); ++i)
{
  colorIcon.fill(this->colorList.at(i));
  this->colorComboBox->addItem(colorIcon, QString(""));
}

問題は、現在選択されているアイテムのボタンに色の四角形がうまく表示されているにもかかわらず、次のとおりです。

ここに画像の説明を入力

ポップアップリストのアイテムが小さく表示されています:

ここに画像の説明を入力

どのサイズを選択しても、ピックスマップ自体は常に約 15px の幅に縮小されているようですsetIconSize

これは本当に簡単に解決できるはずだと思いますが、いくつか試してみましたが、何もうまくいかないようです...助けてくれてありがとう。

編集:

QSSには、 について次のものがありますQComboBox。の幅を 100px に変更してみQComboBox::drop-downましたが、ボックス自体が大きくなり、アイコンはまだ小さいままです。

QComboBox
{
  border: 1px solid #101010;
  background-color: #808080;
  color: #d0d0d0;
  border-radius: 4px;

  selection-color: #f58113;
  selection-background-color: #808080;
  show-decoration-selected: 0;
}

QComboBox:on
{
  padding-top: -10px;
  padding-left: 4px;
}

QComboBox::drop-down
{
   subcontrol-origin: padding;
   subcontrol-position: top right;
   width: 15px;

   border-left-width: 0px;
   border-left-color: #000000;
   border-left-style: solid;
   border-top-right-radius: 3px;
   border-bottom-right-radius: 3px;
}
4

0 に答える 0