我正在QtCreator的设计师中编写C ++ / Qt界面。用一些背景图像作为矩形选择做什么元素?
第二个问题:如何绘制平铺图像?我有和大小(1×50)的图像,我想渲染它的父宽度。有什么想法吗?
mTopMenuBg = QPixmap("images/top_menu_bg.png");
mTopMenuBrush = QBrush(mTopMenuBg);
mTopMenuBrush.setStyle(Qt::TexturePattern);
mTopMenuBrush.setTexture(mTopMenuBg);
ui->graphicsView->setBackgroundBrush(mTopMenuBrush);
QBrush:错误使用 TexturePattern
答案 0 :(得分:7)
如果您只想显示图片,可以使用QImage。要使平铺图像创建背景,请使用QImage构造QBrush。然后,如果您使用QGraphicsScene,则可以将bursh设置为背景画笔。
这是一个用平铺图像“document.png”填充整个主窗口的例子:
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMainWindow *mainWindow = new QMainWindow();
QGraphicsScene *scene = new QGraphicsScene(100, 100, 100, 100);
QGraphicsView *view = new QGraphicsView(scene);
mainWindow->setCentralWidget(view);
QImage *image = new QImage("document.png");
if(image->isNull()) {
std::cout << "Failed to load the image." <<std::endl;
} else {
QBrush *brush = new QBrush(*image);
view->setBackgroundBrush(*brush);
}
mainWindow->show();
return app.exec();
}
结果应用:
或者,似乎您可以将style sheets与任何窗口小部件一起使用,并更改窗口小部件上的background-image属性。这与QtDesigner的集成更多,因为您可以在QtDesigner中设置样式表和图像。