Мне нужно создать значок pixmap, два метода, с которыми я знаком, чтобы сделать это: один настраивает pixmap как o QLabel
и отображает его, а другой рисует pixmap с помощью QPainter
, т.е.QPainter или QLabel менее дорогостоящий, чтобы нарисовать QPixmap
Метод один
Icon::Icon
{
QLabel iconLab = new QLabel;
QLabel iconName = new QLabel;
iconLab->setPixmap("mypixmap.png");
iconName->setText("myiconname");
QVBoxLayout *iconLayout = new QVBoxLayout;
iconLayout->setMargin(0);
iconLayout->addWidget(iconLab, 1, Qt::AlignCenter);
iconLayout->addWidget(iconName, 1, Qt::AlignCenter);
iconLayout->setSpacing(0);
setLayout(iconLayout);
setMaximumSize(100,160);
setMinimumSize(100,160);
}
Способ 2,
Icon::Icon
{
setMaximumSize(100,160);
setMinimumSize(100,160);
}
Icon::paintEvent(QPaintEvent*)
{
QPainter painter;
painter.drawPixmap(0,0,myPixmap);
painter.drawText(0,100,myText)
}
Я должен обратить количество иконок, более чем на 100, таким образом, какой из них эфф ective, Заранее спасибо,
Вы потрудились профилировать их и узнать? – cmannett85
прямо сейчас я использую первый метод. Потому что я не очень хорошо знаком с QPainter. Я прочитал, что рисование с использованием paintEvent уменьшит скорость, так как оно будет выполняться всякий раз, когда приходит запрос на обновление экрана. –