Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > KDE
KDE Vos questions sur l'environnement KDE
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/02/2009, 20h45   #1
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Par défaut Ne trouve pas les headers des widgets kde

Bonjour,
Je fais une IHM en qt4 avec qt4 designer, je voudrais utiliser les widgets kde qui sont disponibles dans la liste de widgets de qt designer.
Seulement quand je fabrique le header avec uic, il y a des
Code :
#include <QtGui/QSlider>
pour les widgets de qt, et
Code :
#include "kpushbutton.h"
pour ceux de kde.
Et au make, ca me met "error: kpushbutton.h: Aucun fichier ou dossier de ce type".
Il y a qqchose à installer en plus ou il faut les mettre soi-meme? Je comprends pas trop.
Merci
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2009, 23h21   #2
Rédacteur/Modérateur
 
Avatar de CedrX
 
Inscription : avril 2007
Messages : 1 096
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 1 096
Points : 1 252
Points : 1 252
Je pense qu'il te manque les paquets de développement de kde sur ta distribution.

Sous debian par exemple il s'agit du paquet:
kdelibs4-dev pour kde3
kdelibs5-dev pour kde4
CedrX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2009, 02h23   #3
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Ah oui, j'ai oublié ce petit détail, je travaille sous kubuntu 8.10 ...
Je ne pense pas qu'il manque ces librairies.
Je vais vérifier quand-même.
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2009, 17h56   #4
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
OK, ils n'étaient pas installés. J'ai installé kdelibs5-dev, mis a jour uic et qmake pour qt4 (enfin, j'ai juste modifié leurs liens symboliques vers uic-qt4 et qmake-qt4 en fait).
Les include sont toujours de la forme
Code :
#include "kpushbutton.h"
, mais cette fois l'erreur est plus tard.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o main.o main.cpp                                                               
g++ -Wl,--no-undefined -o test3 main.o    -L/usr/lib -lQtGui -lQtCore -lpthread                                    
main.o: In function `Ui_prog::retranslateUi(QMainWindow*)':                                                    
main.cpp:(.text._ZN11Ui_prog13retranslateUiEP11QMainWindow[Ui_prog::retranslateUi(QMainWindow*)]+0x33f): undefined reference to `KPushButton::setText(QString const&)'                                                        
main.cpp:(.text._ZN11Ui_prog13retranslateUiEP11QMainWindow[Ui_prog::retranslateUi(QMainWindow*)]+0x38f): undefined reference to `KPushButton::setText(QString const&)'                                                        
main.cpp:(.text._ZN11Ui_prog13retranslateUiEP11QMainWindow[Ui_prog::retranslateUi(QMainWindow*)]+0x3df): undefined reference to `KPushButton::setText(QString const&)'                                                        
main.cpp:(.text._ZN11Ui_prog13retranslateUiEP11QMainWindow[Ui_prog::retranslateUi(QMainWindow*)]+0x42f): undefined reference to `KPushButton::setText(QString const&)'                                                        
main.cpp:(.text._ZN11Ui_prog13retranslateUiEP11QMainWindow[Ui_prog::retranslateUi(QMainWindow*)]+0x47f): undefined reference to `KPushButton::setText(QString const&)'                                                        
main.o:main.cpp:(.text._ZN11Ui_prog13retranslateUiEP11QMainWindow[Ui_prog::retranslateUi(QMainWindow*)]+0x4cf): more undefined references to `KPushButton::setText(QString const&)' follow                                    
main.o: In function `Ui_prog::setupUi(QMainWindow*)':                                                          
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x7dc): undefined reference to `KButtonGroup::KButtonGroup(QWidget*)'                                                                     
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x8b2): undefined reference to `KPushButton::KPushButton(QWidget*)'                                                                       
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x988): undefined reference to `KPushButton::KPushButton(QWidget*)'                                                                       
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0xa63): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0xb3e): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0xc19): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.o:main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0xcf7): more undefined references to `KPushButton::KPushButton(QWidget*)' follow
main.o: In function `Ui_prog::setupUi(QMainWindow*)':
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x14b7): undefined reference to `KButtonGroup::KButtonGroup(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x158d): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x1665): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x1740): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x181b): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x18f6): undefined reference to `KPushButton::KPushButton(QWidget*)'
main.o:main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x19d4): more undefined references to `KPushButton::KPushButton(QWidget*)' follow
main.o: In function `Ui_prog::setupUi(QMainWindow*)':
main.cpp:(.text._ZN11Ui_prog7setupUiEP11QMainWindow[Ui_prog::setupUi(QMainWindow*)]+0x2035): undefined reference to `Q3ButtonGroup::Q3ButtonGroup(QWidget*, char const*)'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [test3] Erreur 1
kpushbutton.h a pourtant bien un setText(QString). Enfin je ne comprends pas du tout.
Aparemment il y a aussi un problème avec le qt3 support puisque "undefined reference to `Q3ButtonGroup::Q3ButtonGroup".
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2009, 17h59   #5
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Voilà mon main.cpp, très simple.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <QApplication>
#include <QtGui>
#include "ui_prog.h"
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    QMainWindow *fenetre = new QMainWindow;
    Ui::prog ui;
    ui.setupUi(fenetre);
 
    fenetre->show();
 
    return app.exec();
}
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2009, 22h19   #6
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Non mais c'est pas moi qui écrit ce programme, c'est qt designer, c'est ca le problème.
Donc j'ai ajouté les librairies nécessaires dans le Makefile fabriqué (kio et kdeui), ca compile, et ca me fait une erreur de segmentation...
Voilà le backtrace :
Code :
1
2
3
4
5
6
7
8
9
10
(gdb) backtrace
#0  0x00007f3445c9ab6b in ?? () from /usr/lib/libkdecore.so.5
#1  0x00007f3445c9ad90 in KComponentData::config () from /usr/lib/libkdecore.so.5
#2  0x00007f3445c99465 in KGlobal::config () from /usr/lib/libkdecore.so.5
#3  0x00007f344908332a in KGlobalSettings::showIconsOnPushButtons () from /usr/lib/libkdeui.so.5
#4  0x00007f3449134839 in KPushButton::KPushButtonPrivate::readSettings () from /usr/lib/libkdeui.so.5
#5  0x00007f3449134ed1 in KPushButton::init () from /usr/lib/libkdeui.so.5
#6  0x00007f3449135178 in KPushButton::KPushButton () from /usr/lib/libkdeui.so.5
#7  0x000000000040505b in Ui_prog::setupUi ()
#8  0x0000000000403de1 in main ()
Je comprends de moins en moins...
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2009, 22h27   #7
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
J'ai trouvé un paramètre "Include Hints" dans les paramètres de la form dans qt designer.
Est-ce que je suis sur la bonne piste?
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2009, 18h29   #8
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Je récapitule.
Quand je mets un widget kde dans ma fenetre avec qt designer.
Je fais un "qmake -project", "qmake", j'ajoute -lkio et -lkdeui dans les LIBS du makefile créé (ca devrait pas être fait tout seul?), je make, j'exécute et... erreur de segmentation avec le message donné plus haut.

Qu'est-ce que j'ai donc fait de mal?
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2009, 17h05   #9
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Désolé d'insister mais je ne comprends vraiment pas! Quelqu'un a déjà fait des applis pour kde?
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2009, 19h06   #10
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
Bon, je me suis mis à kdevelop en projet kde4 application framework. J'utilise donc cmake plutôt que qmake comme on m'a conseillé (et j'ai réinstallé tout le système à cause de paquets defectueux...).
Maintenant j'arrive à compiler et exécuter des applis avec des widgets kde de la librairie kdeui MAIS pas ceux de la librairie kio...
Quand je mets un kurlrequester par exemple, j'ai un
Code :
ConfigDialog.cpp:(.text._ZN22Ui_ConfigurationDialog7setupUiEP7QDialog[Ui_ConfigurationDialog::setupUi(QDialog*)]+0x39d8): undefined reference to `KUrlRequester::KUrlRequester(QWidget*)'
.
En fouillant, j'ai remarqué que dans le fichier "build/CMakeFiles/mon_appli.dir/build.make", il y a une ligne "mon_appli: /usr/lib/libkdeui.so", j'ai donc ajouté une ligne "mon_appli: /usr/lib/libkio.so" et dans "build/CMakeFiles/mon_appli.dir/build.make", j'ai ajouté "-lkio" après "-lkdeui".
A ce moment ca compile mais à l'exécution :
Code :
1
2
ASSERT: "d" in file /build/buildd/kde4libs-4.1.4/kdecore/kernel/kcomponentdata.cpp, line 166
Abandon
Et le backtrace :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7f1264c096f0 (LWP 14660)]
0x00007f125f8c6015 in raise () from /lib/libc.so.6
(gdb) ba
#0  0x00007f125f8c6015 in raise () from /lib/libc.so.6
#1  0x00007f125f8c7b83 in abort () from /lib/libc.so.6
#2  0x00007f1263f986b5 in qt_message_output () from /usr/lib/libQtCore.so.4
#3  0x00007f1263f987fd in qFatal () from /usr/lib/libQtCore.so.4
#4  0x00007f12644871d8 in KComponentData::config (this=0x13f1410)
    at /build/buildd/kde4libs-4.1.4/kdecore/kernel/kcomponentdata.cpp:166
#5  0x00007f1264485525 in KGlobal::config ()
    at /build/buildd/kde4libs-4.1.4/kdecore/kernel/kglobal.cpp:113
#6  0x00007f12610fa3ba in KGlobalSettings::completionMode ()
    at /build/buildd/kde4libs-4.1.4/kdeui/kernel/kglobalsettings.cpp:201
#7  0x00007f12611321aa in KCompletionBase (this=0x165cc78)
    at /build/buildd/kde4libs-4.1.4/kdeui/util/kcompletionbase.cpp:32
#8  0x00007f12611825e4 in KLineEdit (this=0x165cc50, parent=<value optimized out>)
    at /build/buildd/kde4libs-4.1.4/kdeui/widgets/klineedit.cpp:192
#9  0x00007f1260c1527c in KUrlRequester::KUrlRequesterPrivate::init (this=0x165cbd0)
    at /build/buildd/kde4libs-4.1.4/kio/kfile/kurlrequester.cpp:224
warning: (Internal error: pc 0x4212eb in read in psymtab, but not in symtab.)
 
#10 0x00000000004212ec in Ui_ConfigurationDialog::setupUi (this=warning: (Internal error: pc 0x41d910 in read in psymtab, but not in symtab.)
 
warning: (Internal error: pc 0x4212eb in read in psymtab, but not in symtab.)
 
0x7fff6cc38b28,
    ConfigurationDialog=warning: (Internal error: pc 0x4212eb in read in psymtab, but not in symtab.)
 
0x7fff6cc38b00) at /home/jquentin/mon_appli/build/ui_ConfigDialog.h:698
#11 0x000000000041b5b6 in ConfigurationDialog (this=0x7fff6cc38b00, parent=<value optimized out>)
    at /home/jquentin/mon_appli/ConfigDialog.cpp:15
#12 0x000000000042426a in main (argc=1, argv=<value optimized out>)
    at /home/jquentin/mon_appli/main.cpp:17
Qu'est-ce qu'il me manque à la fin ?!!
C'est quoi cette histoire de psymtab?
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2009, 18h23   #11
Futur Membre du Club
 
Inscription : novembre 2008
Messages : 112
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 112
Points : 15
Points : 15
En utilisant une kapplication plutot qu'une qapplication, ca marche!!
Merci à tous!
bourriquet_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 17h40.


 
 
 
 
Partenaires

Hébergement Web