Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Klasse von ui ableiten

  1. #1
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    Klasse von ui ableiten

    Wie leite ich denn eine Klasse von einer UI Komponente ab?

  2. #2
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Welche Sprache? Du musst schon etwas mehr darüber sagen, was Du wie und wo machen willst, dmait Dir jmd. helfen kann.

    fs111

  3. #3
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    C++

    Ich möchte von einer im QDesigner erstellten ui Komponente in Kdevelope ein Klasse abzweigen mit der ich einige Eigenschaften verändern kann. Weil die ui...cpp ja Automatisch erstellt wird kann ich so nicht darauf zugreifen. Ich weiss nur im Moment nicht wie der Aufbau sein muss.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Das ist einfach, du erzeugst eine Header Datei und eine Quelldatei

    Code:
    #ifndef MYCLASS_H
    #define MYCLASS_H
    
    #include "uigeneratedclass.h"
    
    class MyClass : public UIGeneratedClass
    {
        Q_OBJECT
    public:
        MyClass(QWidget* parent=0, const char* name=0);
    };
    #endif
    Code:
    #include "myclass.h"
    
    MyClass::MyClass(QWidget* parent, const char* name) : UIGeneratedClass(parent, name)
    {
    }
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    autip
    Gast

    Was mache ich falsch?!?

    Hallo!

    Bei mir funktioniert der Ansatz leider nicht. Und ich weiß einfach nicht warum Ich hoffe ihr könnt mir helfen. Ich nutze übrigens QT4.1


    Als erstes habe ich mit dem Dessigner ein Widget erstellt, als ui-File gespeichert, über das Plugin in Microsoft Visual C++ importiert und mit der "Direct Approach" in mein Programm eingebunden.
    Das hat soweit alles Funktioniert.



    Nun zu meinem Problem:
    Mit dem oben geschilderten Ansatz (Single Inheritance Approach) bekomme ich immer Fehlermeldungen.

    Hier mal die Auszüge aus den Dateien:

    Die kompilierte ui-Datei "Ui_IOPlugin_Widget.h"
    Code:
    #ifndef UI_IOPLUGIN_WIDGET_H
    #define UI_IOPLUGIN_WIDGET_H
    
    #include <QtCore/QVariant>
    #include <QtGui/QAction>
    #include <QtGui/QApplication>
    #include <QtGui/QButtonGroup>
    #include <QtGui/QGridLayout>
    #include <QtGui/QLCDNumber>
    #include <QtGui/QLabel>
    #include <QtGui/QSpacerItem>
    #include <QtGui/QSpinBox>
    #include <QtGui/QTextBrowser>
    #include <QtGui/QVBoxLayout>
    #include <QtGui/QWidget>
    
    class Ui_IOWidget
    {
    …   
    //DAS HAB ICH MAL GEKÜRZT
    …
    };
    
    namespace Ui {
        class IOWidget: public Ui_IOWidget {};
    } // namespace Ui
    
    #endif // UI_IOPLUGIN_WIDGET_H


    Um die Klasse Abzuleiten habe ich laut diverser Quellen eine .h und .cpp-Datei erstellt:

    SingleInheritance.h
    Code:
    #ifndef SINGLE_INHERITANCE_H
    #define SINGLE_INHERITANCE_H
    
    #include "../generated/ui_IOPlugin_Widget.h"
    
    
    class MyClass : public Ui_IOWidget
    {
        Q_OBJECT
    public:
        MyClass(QWidget* parent=0, const char* name=0);
    };
    #endif


    SingleInheritance.cpp
    Code:
    #include "Single_Inheritance.h"
    #include <QApplication>
    #include <QDialog>
    
    MyClass::MyClass(QWidget* parent, const char* name) : Ui_IOWidget(parent, name)
    {
    }

    Beim kompilieren bekomme ich den folgenden Fehler:
    ...\Single_Inheritance.cpp( 78 ) : error C2661: 'Ui_IOWidget::Ui_IOWidget' : no overloaded function takes 2 parameters



    Wenn ich die ganzen "name"s aus den Klammern entfern lautet der Fehler
    ...\single_inheritance.cpp( 78 ) : error C2664: '__thiscall Ui_IOWidget::Ui_IOWidget(const class Ui_IOWidget &)' : cannot convert parameter 1 from 'class QWidget *' to 'const class Ui_IOWidget &'
    Reason: cannot convert from 'class QWidget *' to 'const class Ui_IOWidget'
    No constructor could take the source type, or constructor overload resolution was ambiguous
    Error executing cl.exe.



    Ausserdem hab ich mal statt
    "class MyClass : public Ui_IOWidget"
    die Zeile
    class MyClass : public IOWidget

    oder auch
    class MyClass : public QWidget
    eingefügt, weil ich mir nicht sicher bin was dort hin gehört, aber alles ohne Erfolg.

    Was muss ich ändern?

    Danke schon mal für eure Hilfe!!!


    PS: Gibt es den Code-Editor von QT3 in QT 4 eigentlich nicht mehr?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •