2012-06-26 3 views
0

У меня есть QMessagebox с пользовательским фоновым изображением. Поскольку на верхней стороне фонового изображения я хочу увидеть что-то, текст сообщения должен быть опущен. Кто-нибудь знает, как я могу это сделать? Я уже пытался бросить некоторые белые линии, используя br, так:Нижний текст в QMessagebox

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

но это завинчивает фоновое изображение. Есть ли способ переместить «ящик», который содержит текст, в нижнюю позицию?

+0

ну, этот кусок кода должен опускать текстовое положение на 3 строки .. – ScarCode

+0

Он делает, но он закручивает мой фон. На самом деле проблема заключается в том, что когда я использую popup.setStyleSheet («background-image: url (hello.png)), он устанавливает фон не только окна сообщений, но также кнопок и текстового поля. Так что есть способ установить просто фон сообщения, а не его компонентов? – Frank

ответ

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 
     } 
    } 
} 
Смежные вопросы