Seite 1 von 1

Qt Designer Klassen in Eigene Projekte

Verfasst: 18. Juli 2011 02:46
von paule22
Hallo,

kann man die Qt Designer Klassen auch in Eigene Projekte einsetzen?
Habe folgenden Code ....
Der produziert mir unter Windows ein lauffähiges Programm.
Allerdings wird nur "QWidget *w" angezeigt, der Rest nicht - woran kann das liegen?
Für Hilfe und Code bin ich jeden sehr dankbar.
Danke

Code: Alles auswählen

MyDesigner::MyDesigner(QDockWidget *parent)
  : QListWidget(parent)
{
MyDesigner::MyDesigner(QDockWidget *parent)
  : QListWidget(parent)
{
  QWidget *w = new QWidget(this);
  w->setGeometry(QRect(12, 12, 281, 261));
  w->setAutoFillBackground(true);

  QDesignerWidgetBoxInterface *widgetBox;
  QDesignerFormEditorInterface *formEditor = new QDesignerFormEditorInterface(w);
  QDesignerCustomWidgetInterface *wb = new AnalogClockPlugin(w);
  wb->initialize(formEditor);
  widgetBox = formEditor->widgetBox();
}

 AnalogClockPlugin::AnalogClockPlugin(QObject *parent)
     : QObject(parent)
 {
     initialized = false;
 }

 void AnalogClockPlugin::initialize(QDesignerFormEditorInterface * /* core */)
 {
     if (initialized)
         return;

     initialized = true;
 }

 bool AnalogClockPlugin::isInitialized() const
 {
     return initialized;
 }

 QWidget *AnalogClockPlugin::createWidget(QWidget *parent)
 {
     return new QPushButton("PushButton",parent);
 }

 QString AnalogClockPlugin::name() const
 {
     return "AnalogClock";
 }

 QString AnalogClockPlugin::group() const
 {
     return "Display Widgets [Examples]";
 }

 QIcon AnalogClockPlugin::icon() const
 {
     return QIcon();
 }

 QString AnalogClockPlugin::toolTip() const
 {
     return "";
 }

 QString AnalogClockPlugin::whatsThis() const
 {
     return "";
 }

 bool AnalogClockPlugin::isContainer() const
 {
     return false;
 }

 QString AnalogClockPlugin::domXml() const
 {
     return "<ui language=\"c++\">\n"
            " <widget class=\"AnalogClock\" name=\"analogClock\">\n"
            "  <property name=\"geometry\">\n"
            "   <rect>\n"
            "    <x>0</x>\n"
            "    <y>0</y>\n"
            "    <width>100</width>\n"
            "    <height>100</height>\n"
            "   </rect>\n"
            "  </property>\n"
            "  <property name=\"toolTip\" >\n"
            "   <string>The current time</string>\n"
            "  </property>\n"
            "  <property name=\"whatsThis\" >\n"
            "   <string>The analog clock widget displays the current time.</string>\n"
            "  </property>\n"
            " </widget>\n"
            "</ui>\n";
 }

 QString AnalogClockPlugin::includeFile() const
 {
     return "analogclock.h";
 }

 Q_EXPORT_PLUGIN2(customwidgetplugin, AnalogClockPlugin)

Re: Qt Designer Klassen in Eigene Projekte

Verfasst: 18. Juli 2011 06:36
von Christian81
Was willst du erreichen? Ein eigenes Widget im Designer anzeigen? Das wird hier vorgestellt: http://doc.trolltech.com/4.7/designer-c ... lugin.html

Re: Qt Designer Klassen in Eigene Projekte

Verfasst: 18. Juli 2011 12:57
von paule22
Hallo,

ich will erreichen, dass ich einen Designer nicht neuschreiben muss, sondern den von Qt nehme und in meinen Projekt einsetze.
Ich könnte den Qt designer mit geben, aber das ist nicht mein Ziel, weil ich Eigene Vorlagen / aussehen programmieren will.
Also kurz: geänderten qt designer in eigenes Projekt
mit designer meine ich Widgets platzieren, verschieben und größe ändern
Gruß

Re: Qt Designer Klassen in Eigene Projekte

Verfasst: 18. Juli 2011 19:33
von Christian81
Ganz schön große Idee - da müsste man im Designer nachschauen wie er die Plugins und Widgets initialisiert. Da kann ich leider nicht ghelfen.

Re: Qt Designer Klassen in Eigene Projekte

Verfasst: 18. Juli 2011 19:45
von paule22
Ich danke Dir!
habe jetzt einen rudimentären Designer selbst geschrieben.