gpt4 book ai didi

c++ - QT绘制平铺图像的方法

转载 作者:太空狗 更新时间:2023-10-29 20:17:51 26 4
gpt4 key购买 nike

我正在 QtCreator 的设计器中使用 C++/Qt 编写接口(interface)。选择什么元素作为带有一些背景图像的矩形?

第二个问题:如何绘制平铺图像?我有大小为 (1×50) 的图像,我想根据父级宽度渲染它。有什么想法吗?


mTopMenuBg = QPixmap("images/top_menu_bg.png");
mTopMenuBrush = QBrush(mTopMenuBg);
mTopMenuBrush.setStyle(Qt::TexturePattern);
mTopMenuBrush.setTexture(mTopMenuBg);

ui->graphicsView->setBackgroundBrush(mTopMenuBrush);

QBrush: Incorrect use of TexturePattern

最佳答案

如果你只想显示一张图片,你可以使用 QImage .要用平铺的图像制作背景,请构造一个 QBrush与QImage。那么,如果您使用的是 QGraphicsScene例如,您可以将笔刷设置为背景画笔。

这是一个用平铺图像“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();
}

生成的应用程序:
screen shot

或者,您似乎可以使用 style sheets使用任何小部件并更改 background-image小部件上的属性。这与 QtDesigner 有更多的集成,因为您可以在 QtDesigner 中设置样式表和图像。 .

关于c++ - QT绘制平铺图像的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com