0

カスタムの背景画像を持つ QMessagebox があります。背景画像の上側に見たいものがあるので、メッセージボックスのテキストを下げる必要があります。どうすればこれができるか知っている人はいますか?私はすでにbrを使っていくつかの白い線を投げてみました。

popup.setText("<font size =5 color =white ><br>""<br>""<br>""Are you sure you 
want to erase the memory</font> ");

しかし、これは背景画像を台無しにします。テキストを含む「ボックス」を下の位置に移動する方法はありますか?

4

1 に答える 1

1

QMessageBox のレイアウトを取得して、テキストを保持するラベルを取得し、ラベルの余白を増やすことができます。これはおそらくハックであり、プロジェクトを移植できなくする可能性があります。QMessageBox を作成し、hack を呼び出してからボックスを実行します。

void hack(QMessageBox* pMessageBox)
{
   QGridLayout* grid = qobject_cast<QGridLayout*>(pMessageBox->layout());
   if (grid)
   {
      QLabel* label = qobject_cast<QLabel*>((grid->itemAtPosition(0,1))->widget());
      if (label)
      {
         label->setMargin(label->margin()+5); // whatever is suitable
      }
   }
}
于 2012-06-26T13:50:32.583 に答える