我写了一个改变失明的小程序(这次只有windows)。它通过 qgl 小部件中的 open gl 显示 4 个图像(2 个真实,2 个灰色)。它使用画家来做到这一点。
它在我的电脑上运行良好。我试图把它放到另一个没有 qt 的地方,并将这个 gl 文件放到目录中(找到了 with dependency walker):
libgcc_s_dw2-1.dll mingwm10.dll QtCore4.dll QtGui4.dll QtOpenGL4.dll
它在我的电脑上运行良好,在 QTCreator 之外并且没有设置任何路径。在另一台电脑上,QGL 小部件只是黑色的。该程序正常工作(单击按钮等),但所有图像都是黑色的。我寻找路径,但它们都很好。不知道发生了什么。我使用的电脑硬件较旧,但没有什么特别之处(较旧的 Ati 卡带有较旧的驱动程序,但我可以在中等设置下玩半条命 2,所以我假设驱动程序已安装)。
我没有收到任何错误消息或任何东西。任何想法可以做些什么来解决它?如果没有任何效果,我将尝试在其中创建一个带有该程序的 ubuntu USB 记忆棒。
路径(路径正确):
C:\tina_and_mona\pics\1\1.jpg C:\tina_and_mona\pics\1\2.jpg C:\tina_and_mona\pics\1\3.jpg C:\tina_and_mona\pics\1\4.jpg
void FlickerImage::updateGL()
{
//qDebug() << "In UpdateGl Event";
painter.begin(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.drawImage ( QRectF(0,0,800,600), images[image_counter], QRectF(0,0, images[image_counter].width(), images[image_counter].height()));
//painter.fillRect(QRect(0,0,800,600), QColor(0,0,0,255));
painter.end();
}
void FlickerImage::loadImages()
{
busy = true;
images.clear();
/*images.append(QImage(QDir::toNativeSeparators(QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"1.jpg")));
images.append(QImage(QDir::toNativeSeparators(QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"2.jpg")));
images.append(QImage(QDir::toNativeSeparators(QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"3.jpg")));
images.append(QImage(QDir::toNativeSeparators(QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"4.jpg")));*/
images.append(QImage(QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"1.jpg")));
images.append(QImage(QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"2.jpg")));
images.append(QImage(QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"3.jpg")));
images.append(QImage(QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"4.jpg")));
qDebug() << "Before output file";
QFile output("image.log");
if(!output.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append))
{
qDebug() << "Could not open output";
}
else
{
qDebug() << "image.log could be opened";
output.write(QString("hi").toAscii());
output.write(QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"1.jpg\n").toAscii());
output.write((QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"2.jpg\n")).toAscii());
output.write((QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"3.jpg\n")).toAscii());
output.write((QDir::toNativeSeparators(QDir::currentPath() + QDir::separator () + QString("pics") + QDir::separator () + QString::number(counter) + QDir::separator()+"4.jpg\n")).toAscii());
output.close();
}
busy = false;
}