[Qt-interest] QtPlugin - Multiple Inheritance Problem
Julian Thomé
frostisch at yahoo.de
Mon Jan 18 14:34:16 CET 2010
Hello List.
I have the following problem. I'm writing an qt-application for creating users/groups on ldap. It is possible to write plugins
for my application. For the communication between the main application and the plugin i use a container object (KockpitUser). The plugin receives
the container object and its attributes should be displayed. The container object inherits from multiple classes.
class KockpitUser : public QObject, virtual public KockpitUnit, virtual public KockpitAccount, virtual public KockpitContact, virtual public KockpitBackendEntry {
....
The interface class:
----------------------------------------------------------8< snip
class KockpitIfaceUser {
public:
virtual ~KockpitIfaceUser() { }
virtual QWidget* getWidget() = 0;
virtual QString getName() = 0;
virtual void showAttributes(KockpitUser *kuser) = 0;
virtual void assignAttributes(KockpitUser *kuser) = 0;
};
---------------------------------------------------------->8snap
The header of the plugin:
----------------------------------------------------------8< snip
class Samba: public QWidget, public KockpitIfaceUser, public Ui::sambaForm {
Q_OBJECT
Q_INTERFACES(KockpitIfaceUser)
public:
Samba(QWidget *parent = 0);
QWidget* getWidget();
QString getName();
void showAttributes(KockpitUser *kuser);
void assignAttributes(KockpitUser *kuser);
};
---------------------------------------------------------->8snap
If the funktion showAttributes(KockpitUser* kuser) (shown below) is called from the main application it crashed.
Hint: getDomain and getSid are inherited from KockpitAccount
----------------------------------------------------------8< snip
void Samba::showAttributes(KockpitUser *kuser){
lineEditDomain->setText(kuser->getDomain());
lineEditSidUser->setText(kuser->getSid());
}
---------------------------------------------------------->8snap
The error ist as follows:
----------------------------------------------------------8< snip
symbol lookup error ... undefined symbol: _ZNK14KockpitAccount9getDomainEv
---------------------------------------------------------->8snap
If i access KockpitUser-attributes which are not inherited from BaseClasses it works.
It would be very nice if someone could help me with that problem.
Thank you very much.
Hello List.
I have the following problem. I'm writing an qt-application for creating users/groups on ldap. It is possible to write plugins
for my application. For the communication between the main application and the plugin i use a container object (KockpitUser). The plugin receives
the container object and its attributes should be displayed. The container object inherits from multiple classes.
class KockpitUser : public QObject, virtual public KockpitUnit, virtual public KockpitAccount, virtual public KockpitContact, virtual public KockpitBackendEntry {
....
The interface class:
----------------------------------------------------------8< snip
class KockpitIfaceUser {
public:
virtual ~KockpitIfaceUser() { }
virtual QWidget* getWidget() = 0;
virtual QString getName() = 0;
virtual void showAttributes(KockpitUser *kuser) = 0;
virtual void assignAttributes(KockpitUser *kuser) = 0;
};
---------------------------------------------------------->8snap
The header of the plugin:
----------------------------------------------------------8< snip
class Samba: public QWidget, public KockpitIfaceUser, public Ui::sambaForm {
Q_OBJECT
Q_INTERFACES(KockpitIfaceUser)
public:
Samba(QWidget *parent = 0);
QWidget* getWidget();
QString getName();
void showAttributes(KockpitUser *kuser);
void assignAttributes(KockpitUser *kuser);
};
---------------------------------------------------------->8snap
If the funktion showAttributes(KockpitUser* kuser) (shown below) is called from the main application it crashed.
Hint: getDomain and getSid are inherited from KockpitAccount
----------------------------------------------------------8< snip
void Samba::showAttributes(KockpitUser *kuser){
lineEditDomain->setText(kuser->getDomain());
lineEditSidUser->setText(kuser->getSid());
}
---------------------------------------------------------->8snap
The error ist as follows:
----------------------------------------------------------8< snip
symbol lookup error ... undefined symbol: _ZNK14KockpitAccount9getDomainEv
---------------------------------------------------------->8snap
If i access KockpitUser-attributes which are not inherited from BaseClasses it works.
It would be very nice if someone could help me with that problem.
Thank you very much.
__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails.
http://mail.yahoo.com
More information about the Qt-interest-old
mailing list