[Qt-interest] Design of an application using plugins

Alessandro Portale Alessandro.Portale at trolltech.com
Wed Jun 3 15:10:33 CEST 2009


Hi Patric,

I understand that You would like to have some suggestions for a 
feasability study, rather than all the details. Here my personal opinions:

QTabWidget offers all the API that you need to add remove and shuffle 
around tabs at program runtime. The right horse to bet on :)

> 1. Is my idea right about the way making this program works with plugins ?

The idea is 'ideal' and Qt offers you a great way to implement a plugin 
interface. However, my personal experience is that development with 
plugins adds extra efforts and pitfalls to your development. You should 
consider if You _really_ need plugins.

> 2. When I finish my project, do I have to make something like... 
> installation package ? So the user can install my program, and what's 
> the best way to do it with QT ?

Qt does not create installer packages. In order to do that, on Windows I 
can suggest the great and free InnoSetup. There is also BitRock which is 
cross platform. Simply take care that all Qt Dlls, plugins and resources 
for your program, as well as the compilers runtime dlls get installed on 
the clients system.

> 3. When the user (eventually) install my program, in there will be one 
> plugin (.dll library) which will manage some default device. But there 
> will come a time when there will be another new device, that must be 
> managable with this program (user interface) and a new plugin, 
> implementing the new device (few new tabs) will be created by me for 
> example.
> At that point, how the user will get that plugin ? Will it be possible 
> just to copy the new plugin in the program's directory and get it work 
> automatically ?

Like point 2. Qt does not offer such an upgrade system. Are you sure 
that you want to ship separate .dlls to your customer? The plugins might 
work with the formerly installed 'main program' but only if the plugin 
interfaces did not change at all. It is much safer to consider shipping 
complete packages. InnoSetup, BitRock (and others) compress the data 
well and usually can do smart upgrades.

> Please, help. Everything is so complicated that I'm gonna explode soon.

Just ask the list before that happens :)

Alessandro.



More information about the Qt-interest-old mailing list