我寫了一個小程序,用於改變失明(此時僅用於Windows)。它通過在qgl小部件中打開gl顯示4個圖像(2個真實,2個灰色)。它使用畫家來做到這一點。QT QGL在不同電腦上的黑色小工具
它工作在我的電腦上。我試圖把它放到一個沒有其他Qt和放置在此GL文件到目錄(發現與Dependency Walker中):
libgcc_s_dw2-1.dll mingwm10.dll QtCore4.dll QtGui4.dll QtOpenGL4。 dll
它運行良好,我的電腦,QTCreator之外,沒有任何路徑設置。在其他PC上,QGL小部件只是黑色。該程序正常工作(點擊按鈕等),但所有圖像只是黑色。我尋找路徑,但他們都很好。不知道發生了什麼。我使用的電腦有較舊的硬件,但沒什麼特別的(舊的ATI卡與舊的驅動程序,但我可以在中等設置下玩半條命2,所以我假設驅動程序已安裝)。
我沒有得到任何錯誤信息或任何東西。任何想法可以做些什麼來解決它?如果沒有任何作品,我會嘗試創建一個ubuntu usb棒與它的程序。
路徑(路徑是正確的):
C:\ tina_and_mona \圖片\ 1 \ 1.JPG C:\ tina_and_mona \圖片\ 1 \ 2.JPG C:\ tina_and_mona \圖片\ 1 \ 3.JPG C:\ tina_and_mona \圖片\ 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;
}
設置我也經歷了黑色的OpenGL輸出。它是通過更新顯卡驅動程序修復的。所以我建議你先嚐試一下。 – 2012-06-20 15:43:48
它似乎與插件系統有關。 qApp-> addLibraryPath( 「C:/ customPath /插件」); http://doc.qt.nokia.com/4.7-snapshot/deployment-windows.html#application-dependencies複製所需的不會工作。我會複製並測試它;) – user1439712
像這樣的人推薦:http://deskew.com/blog/tags/qt-plugins-deploy/但所有需要的插件文件夾與您的應用程序在相同的目錄。沒有工作太 – user1439712