Ich möchte QPushButton
mit QIcon
linksbündig ausrichten (nicht zur Mitte als Standard) und Text Center ausrichten. Ich möchte kein Stylesheet verwenden. Ich weiß, dass möglicherweise QPainter
verwenden könnte, aber ich konnte es nicht tun. Ich hatte wenig Ahnung und versucht, diesen Code:Construct QPushButton mit QIcon alignleft und Text Center ausrichten
void MyPushButton::paintEvent(QPaintEvent *)
{
QStylePainter painter(this);
QStyleOptionButton opt;
initStyleOption(&opt);
painter.drawItemPixmap(opt.rect, Qt::AlignLeft, opt.icon);
painter.drawItemText(opt.rect, Qt::AlignCenter, palette(), 1, opt.text);
painter.drawPrimitive(QStyle::PE_PanelButtonCommand, opt);
}
, die diese Fehlermeldung erzeugt
no matching function for call to 'QStylePainter::drawItemPixmap(QRect&, Qt::AlignmentFlag, QIcon&)' painter.drawItemPixmap(opt.rect, Qt::AlignCenter, opt.icon);
Was oben mit dem Code falsch?
Wir müssen auch wissen, was wirklich passiert, wenn Sie den Code lief und was man darüber nicht gefallen hat. –
dieser Fehlercodefehler: keine übereinstimmende Funktion für den Aufruf von 'QStylePainter :: drawItemPixmap (QRect &, Qt :: AlignmentFlag, QIcon &)' painter.drawItemPixmap (opt.rect, Qt :: AlignCenter, opt.icon); – mumulala
@mumulala Die Antwort gehört in eine Bearbeitung der Frage, nicht in einem Kommentar :) –