降低QMessagebox中的文本

时间:2012-06-26 13:12:06

标签: qt settext qmessagebox

我有一个带有自定义背景图片的QMessagebox。由于我想看到的背景图像的顶部有一些东西,应该降低消息框的文本。有人知道我怎么做吗?我已经尝试使用br投入一些白线,所以:

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

但这搞砸了背景图片。有什么办法可以将包含文本的“框”移到较低的位置吗?

1 个答案:

答案 0 :(得分: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
      }
   }
}