Qt изображение не будет отображаться в кнопке - PullRequest
0 голосов
/ 24 октября 2018

Я создаю приложение Qt, и у меня есть изображение, которое я хочу использовать для кнопки вместо текста.К сожалению, все, что отображается, это пустая кнопка.

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

Код для метода 1:

ui->setupUi(this);

QPixmap pix(":/svg/resources/menu.svg");
int w = ui->menuButton->width();
int h = ui->menuButton->height();
ui->menuButton->setMask(pix.scaled(w,h,Qt::KeepAspectRatio).mask());

Я нашел информацию для второго метода здесь: Добавление изображения в QPushButton на Qt

Код для метода 2:

ui->setupUi(this);

QIcon icon(":/svg/resources/menu.svg");
ui->menuButton->setIcon(icon);

Возможнокто-то, пожалуйста, помогите мне выяснить, почему мое изображение не отображается, а кнопка просто пуста?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

В моем проекте с использованием изображений .svg в качестве значков кнопок проблем нет, возможно, размер кнопки отсутствует, попробуйте:

ui->menuButton->setIcon(QIcon(":/svg/resources/menu.svg"));
ui->menuButton->setToolTip("optional tooltip");
ui->menuButton->setFixedSize(QSize(28,28));

Предполагая, что вы правильно сохранили значки в файле ресурсов.Если нет, создайте новую: щелкните правой кнопкой мыши верхнюю папку проекта (в дереве проекта) -> Добавить новую .. -> выберите Qt слева и файл ресурсов Qt в правом окне -> появится новое окно.

Добавить префикс -> Добавить файлы (ваш значок)

0 голосов
/ 24 октября 2018

Вы используете формат изображения .svg.Вы уверены, что ваше приложение загружает плагин формата изображения для .svg?Плагины с изображениями должны находиться в каталоге «imageformats» в текущем каталоге вашего приложения.Доступные плагины вы можете найти в каталоге Qt .../Desktop/Qt/<version>/<mingw or msvc>/plugins/imageformats

...