我在QWidget上创建了一个QVBoxLayout,我在其中动态创建QPushButtons,将它们放入布局中然后将其删除。我想给这些按钮一个背景,所以我决定使用styleSheets。我为每个按钮创建单独的QGraphicsScene,然后渲染它并保存到PNG文件,以便在每个按钮样式表中设置它。
QGraphicsScene *myScene;
QPixmap *tosave = new QPixmap(width,height);
tosave->fill(Qt::transparent);
QPainter painter(tosave);
myScene->render(&painter);
painter.end();
const QString filename = QString(path/to/my/files);
if( !tosave->save(filename,"PNG") )
std::cout << "save unsucceedable" << std::flush;
当我有几个按钮时,Everythings工作得很好但是当它们的数量接近20时,渲染和保存文件的持续时间有点长。这是我的问题,有没有其他选项以更快的方式呈现QPixmaps(并保存它们?)?或者也许您有任何想法如何动态地向QPushButtons添加背景? 附:保存的PNG文件只有~10kB,所以这些不是很大的图像。