Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java pixmaps的Qgraphicscene网格视图_Java_Qt_Qt Jambi - Fatal编程技术网

Java pixmaps的Qgraphicscene网格视图

Java pixmaps的Qgraphicscene网格视图,java,qt,qt-jambi,Java,Qt,Qt Jambi,我想实现pixmaps的“网格视图”。这就是我希望UI的行为:单击一个按钮,它会显示一个带有QGraphicscene(完成)的QGraphicsView,然后我希望在网格视图中显示我的所有Qpixmap。我其实不想看到网格,我只想组织像10列(pixmap)pr.行这样的pixmap,然后在每个pixmap之间有一个10px的空白。(未完成)。这将如何实施? 编辑:以下是我到目前为止所做的工作(产生了第二条评论中描述的结果) 顺便说一句,每个pixmap是64x64px:) 将前几个值写在纸上


我想实现pixmaps的“网格视图”。这就是我希望UI的行为:单击一个按钮,它会显示一个带有QGraphicscene(完成)的QGraphicsView,然后我希望在网格视图中显示我的所有Qpixmap。我其实不想看到网格,我只想组织像10列(pixmap)pr.行这样的pixmap,然后在每个pixmap之间有一个10px的空白。(未完成)。这将如何实施? 编辑:以下是我到目前为止所做的工作(产生了第二条评论中描述的结果)


顺便说一句,每个pixmap是64x64px:)

将前几个值写在纸上:

x = 0, y = 0 => pos = ( 10, 10)
x = 1, y = 0 => pos = ( 74, 10)
x = 2, y = 0 => pos = (138, 10)
每个连续的
x
偏移量之间只有64个像素不同。您需要74个像素——像素地图的大小加上边框的大小

为图像设置几个变量,包括高度、水平和垂直间距,代码应如下所示:

pixmap.setPos(x * (width+hspacing) + offsetx, y * (height+vspacing) + offsety);

如果偏移量x/y是使网格“居中”的相应间距值的一半,则偏移量x/y可能看起来更好。

我尝试过绘制网格。但我不能,因为每次我尝试它时,它只会在第一个像素点之前显示10px的间隔。在那之后,他们都被放在后面:)然后发布你的代码,这样人们就可以看到它是如何被修复的。我不太清楚你的意思。。你让我意识到我的错误计算,但我不明白你的方程式?假设x和y是行数和列数,宽度和高度是像素贴图的尺寸,hspacing和vspacing表示每个像素贴图之间的像素间距,那么offsetx和offsety是什么?这是非常基本的。无论x和y如何,都会添加相同的偏移量x/y。这是一个“转变”。(offsetx,offsety)将是“网格”的左上角。因此offsetx是我想要的x轴上的恒定位移,offsety是我想要的y轴上的恒定位移?那么我不明白hspacing和vspacing的用途是什么?
image
pixmap.setPos(x * 64 + 10 , y * 64 + 10);
x = 0, y = 0 => pos = ( 10, 10)
x = 1, y = 0 => pos = ( 74, 10)
x = 2, y = 0 => pos = (138, 10)
pixmap.setPos(x * (width+hspacing) + offsetx, y * (height+vspacing) + offsety);