[Interest] When does Qt load its plugins?

Thiago Macieira thiago.macieira at intel.com
Wed Jul 13 17:55:35 CEST 2016


Em quarta-feira, 13 de julho de 2016, às 14:14:34 PDT, Elvis Stansvik 
escreveu:
> If I'm going to guess a little:
> > tmp/usr/lib/qt5/plugins/bearer/libqconnmanbearer.so
> > tmp/usr/lib/qt5/plugins/bearer/libqgenericbearer.so
> > tmp/usr/lib/qt5/plugins/bearer/libqnmbearer.so
> 
> I don't think I need these, since I'm not doing anything with a GPS?

Nor do they.

That's about the network bearer: those plugins tell QNetworkConfiguration 
whether you're connected or not, etc. On desktop Linux, you don't need them 
and the application can assume you're always connected. (yes, it can assume 
that)

> > tmp/usr/lib/qt5/plugins/designer/libcontainerextension.so
> > tmp/usr/lib/qt5/plugins/designer/libcustomwidgetplugin.so
> > tmp/usr/lib/qt5/plugins/designer/libqquickwidget.so
> > tmp/usr/lib/qt5/plugins/designer/libtaskmenuextension.so
> > tmp/usr/lib/qt5/plugins/designer/libworldtimeclockplugin.so
> 
> These I think are only required by Qt Designer?

Correct.

> > tmp/usr/lib/qt5/plugins/generic/libqevdevkeyboardplugin.so
> > tmp/usr/lib/qt5/plugins/generic/libqevdevmouseplugin.so
> > tmp/usr/lib/qt5/plugins/generic/libqevdevtabletplugin.so
> > tmp/usr/lib/qt5/plugins/generic/libqevdevtouchplugin.so
> > tmp/usr/lib/qt5/plugins/generic/libqtuiotouchplugin.so
> 
> These ones I'm unsure about, they sound quite important?

That depends on your platform plugin. If you're using the XCB plugin (as a 
regular desktop Linux application would), then you don't need those. If you 
use EGLFS or DirectFB or some other, you may need those to get the input from 
the system.

> > tmp/usr/lib/qt5/plugins/iconengines/libqsvgicon.so
> 
> If I want to use SVG icons I'll include this one?

Correct. Note: this is about SVG icons in QIcon, not about generic SVG support 
in QImage.

If you're on desktop Linux, you want this as SVG icons are part of the icon 
theme spec.

> > tmp/usr/lib/qt5/plugins/imageformats/libqgif.so
> > tmp/usr/lib/qt5/plugins/imageformats/libqico.so
> > tmp/usr/lib/qt5/plugins/imageformats/libqjpeg.so
> > tmp/usr/lib/qt5/plugins/imageformats/libqsvg.so
> 
> These I'll include according to my requirements, that's easy.

Indeed.

> > tmp/usr/lib/qt5/plugins/platforminputcontexts/libcomposeplatforminputconte
> > xtplugin.so
> > tmp/usr/lib/qt5/plugins/platforminputcontexts/libibusplatforminputcontext
> > plugin.so
> These ones's I'm unsure about. They could be important.. or are they
> just for specialized input methods?

They are.

The first one is responsible for support for the Compose key and dead keys on 
X11. You want those because your users may use them.

The second is about accessibility. Include it.

> > tmp/usr/lib/qt5/plugins/platforms/libqlinuxfb.so
> > tmp/usr/lib/qt5/plugins/platforms/libqminimal.so
> > tmp/usr/lib/qt5/plugins/platforms/libqoffscreen.so
> > tmp/usr/lib/qt5/plugins/platforms/libqxcb.so
> 
> Out of these I think I'll only need the XCB plugin, since my app is
> exclusively for X11.

Correct. Though you may consider including the Wayland one too (not on your 
list).

> > tmp/usr/lib/qt5/plugins/platformthemes/libqgtk2.so
> 
> This one I don't need, unless I want my application to integrate
> better in a Gtk-based desktop environment..? (guessing here)

Which means you want it.

> > tmp/usr/lib/qt5/plugins/printsupport/libcupsprintersupport.so
> 
> I'll include this if I want CUPS printing support (I think I do).

Right. If you're including QtPrintSupport library, you probably want this.

> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_debugger.so
> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_inspector.so
> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_local.so
> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_native.so
> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_profiler.so
> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_server.so
> > tmp/usr/lib/qt5/plugins/qmltooling/libqmldbg_tcp.so
> 
> I'm not using QML, so I won't need these?

And they are for debugging.

> > tmp/usr/lib/qt5/plugins/sqldrivers/libqsqlite.so
> 
> And not SQLite, so no need for this.

If you don't deploy QtSql, you don't need any of the sqldrivers. If you do, 
you should find out which drivers you need.

> > tmp/usr/lib/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
> 
> This one I think is important, but could someone confirm?

Yes, it's required to get OpenGL on X (a.k.a. GLX).

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Interest mailing list