PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KMultiTabBar, wie erstell ich das?



CodeReaver
04-09-2004, 12:43
Ich hab vor in mein Programm eine TabBar einzubauen(so wie KDevelop links, rechts und unten), hab auch schon rausgefunden das ich dafür eine KMultiTabBar brauche, nur wie erstell ich die?
Laut der Doku( http://developer.kde.org/documentation/library/cvs-api/kutils/html/classKMultiTabBar.html ) müsste sie sich ja eigentlich wie ein normales Widget erstellen lassen können(Beispiele gibts da ja leider net), ich hab folgendes probiert:



#include <kmultitabbar.h>

SHTML::SHTML()
: KMainWindow( 0, "SuperHTML" )
{
[...]

KMultiTabBar *tb = new KMultiTabBar(KMultiTabBar::Vertical,this);


hab aber den fehler hier bekommen:
linking superhtml (libtool)
shtml.cpp:63: undefined reference to `KMultiTabBar::KMultiTabBar(KMultiTabBar::KMultiTa bBarMode, QWidget*, char const*)'
shtml.cpp:63: undefined reference to `KMultiTabBar::KMultiTabBar(KMultiTabBar::KMultiTa bBarMode, QWidget*, char const*)'

Das versteh ich net, kmultitabbar.h ist doch inkludiert, was hab ich da falsch gemacht?

anda_skoa
04-09-2004, 13:32
Das versteh ich net, kmultitabbar.h ist doch inkludiert, was hab ich da falsch gemacht?

Undefined reference ist ein Linkerfehler, wäre es ein Problem beim Kompilieren (zB wegen fehlendem include) käme eher "unknown type" oder "unknown identifier".

Wahrscheinlich hast du vergessen, gegen die Lib zu linken, in der KMulitTabBar implementiert ist, nach dem Pfad des Dokulinks zu urteilen libkutils

Also entweder -lkutils oder, in einem KDE automake Projekt, $(LIB_KUTILS) hinzufügen

Ciao,
_

CodeReaver
04-09-2004, 17:18
Also danke erstmal für deine Hilfe :)

ich hab bei den LDFLAGS folgendes ausprobiert:
-lkdeutils -lkutils -lutils -kdeutils
Ich hab immer den fehler bekommen das es die library nicht gibt.
Dann hab ich mal versucht die shtml/src/Makefile.am so zu verändern:
# the application source, library search path, and link libraries

shtml_SOURCES = main.cpp shtml.cpp leftbar.cpp
shtml_LDFLAGS = $(KDE_RPATH) $(all_libraries)
shtml_LDADD = $(LIB_KDEUI) $(LIB_KDEUTILS)

Aber der Fehler ist trotzdem noch da, vielleicht heisst die Library anders?

anda_skoa
04-09-2004, 18:01
Sie heißt libkutils.so
Bei mir ist sie unter /usr/lib, bei den anderen KDE Libs

Ciao,
_