gpt4 book ai didi

c++ - 如何在qt中做重叠的自定义项目?

转载 作者:行者123 更新时间:2023-11-28 04:45:11 24 4
gpt4 key购买 nike

如题。我的对象很少,我想为它们设置图形并相互重叠。我正在设置 18 个正方形(地形)。我要添加到这个地形图形中:

setPixmap(QPixmap(":Graphics/Terrain")); 像这样。

然后我想给它添加框架。我有 4 个格式为 .png 的文件,每个文件都是 200x200px。第一个是 terrain.png - 它是一个绿色的正方形,第二个和第三个是框架,大约 20px 宽,有一个透明的中心(带 alpha channel ),最后一个 .png 文件是 City.png,在 City.png 的左角,有是一个小图形,其余部分是透明的(alpha channel )。当我尝试以与 terrain.png 相同的方式设置框架时:

setPixmap(QPixmap(":Graphics/Frame"));

它覆盖了所有 terrain.png 图形,尽管 frame1.png 的中心是透明的。

此外,我想添加一些其他对象,例如 City.png。怎么做?除了使用这个 setPixmap 函数外,Mayby 还存在一些不同的方法吗?

最佳答案

当像这样使用时,setPixmap 方法似乎工作得很好:

QGraphicsScene* scene = new QGraphicsScene();

QGraphicsPixmapItem* itemA = new QGraphicsPixmapItem();
itemA->setPixmap(QPixmap(":/NonTransparentImage.png"));
scene->addItem(itemA);

QGraphicsPixmapItem* itemB = new QGraphicsPixmapItem();
itemB->setPixmap(QPixmap(":/TransparentImage.png"));
scene->addItem(itemB);

QGraphicsView* view = new QGraphicsView(scene);
view->show();

如您所料,透明的 itemBitemA 重叠。

关于c++ - 如何在qt中做重叠的自定义项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49385743/

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