загрузка стандартных плагинов qt вручную и динамически - PullRequest
0 голосов
/ 05 декабря 2010

Может кто-нибудь привести пример, КАК ЗАГРУЗИТЬ qjpeg или любой другой стандартный плагин QT вручную. Пожалуйста, дайте ПРИМЕР КОДА, а не ссылку на страницы qt, потому что я уже знаю следующие факты:

  1. Я не связываю qt как статическую библиотеку.
  2. Я знаю, как развернуть стандартные плагины qt (это автоматическая часть) 2.1. для qjpeg вы копируете qjpeg4.dll в ./imageformats/qjpeg4.dll как. быть базовым директором вашего приложения. но я хочу загрузить и использовать qjpeg lib.

как в

QPluginLoader loader("qjpeg4.dll");
if (loader.instance()) {
    cout << "ok" << endl;
} else {
    cout << "fail" << endl << loader.errorString().toStdString() << endl;
}


QList<QByteArray> list = QImageReader::supportedImageFormats();
for (int i = 0; i < list.size(); ++i) {
    f << list.at(i).constData() << std::endl;
}

Это не печатает JPG и JPG изображения не могут быть прочитаны и записаны. Возможно, если кто-то добавит что-то еще, это сработает. или, может быть, я совершенно неправ.

1 Ответ

0 голосов
/ 05 декабря 2010

Я не сделал этого, но вот обоснованное предположение, вы, вероятно, делаете правильную вещь, чтобы загрузить плагин, но, не идя по обычному маршруту, QImageReader на самом деле не знает о доступности плагина. Если вам действительно нужно явно загрузить плагин, вы, вероятно, можете привести результат QPlugiLoader::instance() к QImageIOPlugin и использовать QIOImageHandler для чтения ваших jpgs, но похоже, что вам придется отказаться от использования QImageReader

...