Bonjour à tous.

Je m'amuse beaucoup avec Qt pour le moment et plus spécialement avec ce que propose Qt Designer. J'ai créé un plugin pour qu'un nouveau widget personnalisé soit ajouté à Qt Designer car je vais en avoir besoin souvent et c'est bien pratique.

Tout (presque ) fonctionne bien:
- je peux utiliser le nouveau widget qui est bien présent dans Qt Designer.
- la compilation du projet qui utilise ce widget se déroule bien

Malheureusement, je suis obligé de faire référence aux sources de ce widget pour que tout se passe aussi bien.

Voici le .pro (simplifié) de ce projet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SOURCES += main.cpp \
    (...)
    /home/seb/QtWorkspace/TableMultiView/tablemultiview.cpp
HEADERS += 
    (...)
    /home/seb/QtWorkspace/TableMultiView/tablemultiview.h
FORMS += 
    (...)
RESOURCES += 
    (...)
INCLUDEPATH += /home/seb/QtWorkspace/TableMultiView/
Rien de bien compliqué si ce n'est que dans la liste des fichiers je dois faire référence à mes fichier tablemultiview.cpp et tablemultiview.h du widget TableMultiView.

Je ne trouve pas ca très propre et d'ailleurs j'ai jamais eu à la faire pour les widgets proposés par défaut dans Qt Designer!

Y a-t-il une meilleure solution (de sorte que je ne doivent pas le faire pour chaque widget perso.)?

Peut-être que le .pro du plugin est mal fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
CONFIG      += designer plugin release
TARGET      = $$qtLibraryTarget(tablemultiviewplugin)
TEMPLATE    = lib
DESTDIR      = $$[QT_INSTALL_PLUGINS]/designer
QTDIR_build:DESTDIR     = $$QT_BUILD_TREE/plugins/designer
 
 
HEADERS     = tablemultiviewplugin.h
SOURCES     = tablemultiviewplugin.cpp
RESOURCES   = icons.qrc
LIBS        += -L. 
 
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS    += target
 
include(tablemultiview.pri)
tablemultiview.pri:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
HEADERS += tablemultiview.h
SOURCES += tablemultiview.cpp
FORMS += tablemultiview.ui
Edit:
Je précise que je suis sous ubuntu