gpt4 book ai didi

c++ - QT如何保存到文件QPoint二维数组

转载 作者:行者123 更新时间:2023-11-30 05:20:23 24 4
gpt4 key购买 nike

我有一 block 板子,我可以在上面“画”一个数字。

enter image description here

这是板的代码

void PrintRectangle::paintEvent(QPaintEvent *)
{
for(int i=0; i<5; i++)
{
ypos=20;
for(int j=0; j<5; j++)
{
QColor color = Qt::white;
for(int k=0; k<points.size(); k++){

if( i == points[k].x() && j == points[k].y() )
{
color = Qt::black;
}

}
p.fillRect(xpos,ypos,recWidth,recHeight,color);
ypos+=60;
}
xpos+=60;
}
}

下一个函数,更新列表中的点

 QVector<QPoint> points;
void PrintRectangle::updateIndexFromPoint(const QPoint &point)
{
int x = point.x() - 20;
int y = point.y() - 20;
bool removed = false;

if( ( (x >= 0 ) && ( x <= 300) ) && ( (y >= 0 ) && ( y <= 300) ) )
{
mXIndex = x / 60; //rec width + spacing
mYIndex = y / 60; //rec height + spacing

for(int k=0; k<points.size(); k++){

qDebug("%d %d", points[k].x(), points[k].y());

if(points[k].x() == mXIndex && points[k].y() == mYIndex){

points.remove(k);
removed = true;
}

}

if(!removed){
points.append(QPoint(mXIndex,mYIndex));
}
}
}

我的问题是如何从 QPoint 选定的矩形保存到文件编号。

例如。文件中的数字 1

0 0 1 0 0
0 1 1 0 0
1 0 1 0 0
0 0 1 0 0
0 0 1 0 0

最佳答案

只需使用 QDataStream将您的点存储在文件中:

void savePoints(QVector<QPoint> points)
{
QFile file("points.bin");
if(file.open(QIODevice::WriteOnly))
{
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_0);
out << points;
file.close();
}
}

QVector<QPoint> loadPoints()
{
QVector<QPoint> points;
QFile file("points.bin");
if(file.open(QIODevice::ReadOnly))
{
QDataStream in(&file);
in.setVersion(QDataStream::Qt_4_0);
in >> points;
file.close();
}
return points;
}

关于c++ - QT如何保存到文件QPoint二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674932/

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