Как сделать QPushButton такими же размерами, как его background-image? - PullRequest
3 голосов
/ 06 августа 2011

У меня в главном окне QPushButton:

practiceButton_ = new QPushButton(this);
practiceButton_->setText(_("Practice"));
practiceButton_->setObjectName("practiceButton");

Тогда я ассоциирую с ним какой-то стиль:

qApp->setStyleSheet("QPushButton#practiceButton { background-image: url('myfile.png'); padding:0; margin:0; border:none; }");

Отображается фоновое изображение, и похоже, что стиль успешно применен, однако кнопка меньше фонового изображения. Как я могу изменить его размер, чтобы он соответствовал фоновому изображению?

Если это невозможно сделать автоматически, возможно ли получить доступ к стилю, примененному к кнопке, и изменить размер кнопки на его основе? Я просто хотел бы избежать жесткого кодирования значений, если смогу избежать этого.

Ответы [ 2 ]

2 голосов
/ 07 августа 2011
    pushButton.resize( QImage( "filename.png" ).size() );
1 голос
/ 06 августа 2011

Хорошо. Я только что понял, что ширина и высота могут быть установлены в самом CSS, что, вероятно, является правильным способом сделать это:

QPushButton#practiceButton {
    background-image: url('NavigationButtonUp.png');
    padding:0;
    margin:0;
    border:none;
    width: 194px;
    height: 40px;
}
...