User defined Widgets im QT-Designer
Verfasst: 27. März 2012 15:43
Hallo ich versuche ein selbst designedes Widget im QT-Designer in der Widget Box zu integrieren.
So soll es aussehen (alles innerhalb des roten rechtecks):
[img][/img]
Ich verwende Visual Studio 2010 mit der Qt-Integration.
Da bekommt man mit rechts click auf die Solution -> Add -> New Projekt ->QT4 Designer Plugin
schon fast alles erstellt was man brauch.
Da wird alles erstellt was im Kapitel "Benutzerdefinierte Widgets erstellen" aus dem QT-Buch beschrieben steht.
Genauer gesagt wurden 4 Files erstellt:
ein ui-File erstellt mit dem Namen "FolderViewer.ui", das im Bild "FolderViewer_Widget.JPG" visualisiert wird.
Dann dachte ich: jetzt muss nur noch die folderviewer.h Klasse vom ui-File abgelitten werden.
Also habe ich folgende änderung vorgenommen:
#include <QtGui/QWidget>
#include "ui_FolderViewer.h"
class FolderViewer : public QWidget, Ui::FolderViewer
{
Q_OBJECT
public:
FolderViewer(QWidget *parent = 0);
~FolderViewer();
};
Das Projekt lässt sich jetzt auch wunderbar compilieren. Das Resultat ist eine dll und eine lib.
Diese Files habe ich jeweils in das Verzeichniss kopiert:
P:\QT\Desktop\Qt\4.7.4\msvc2005\plugins\designer\FolderViewer.dll
P:\QT\Desktop\Qt\4.7.4\msvc2005\plugins\designer\FolderViewer.lib
und in das Qt\bin Verzeichniss jeweils nochmal die dll
und in das Qt\lib Verzeichniss noch die lib.
Jetzt wird mir der FolderViewer auch im QT-Designer in der Widget Box angezeigt, aber sobald ich den auf die Oberfläche einer QtMainApplication drage erscheint nur ein leeres Rechteck.
Und wenn ich dann das compiliere und auf Members des FolderViewer-Widgets zugreifen will bekomme ich einen haufen compiler errors.
folderviewer.h(5): fatal error C1083: Cannot open include file: 'ui_FolderViewer.h': No such file or directory
Sieht jemand was ich falsch mache?
Mir ist auch nicht so ganz klar wie das ist mit dem Plugin? Das sollte doch so etwas sein wie eine Factory für das User defined Widget FolderViewer, oder?
Gruss
Daniel
So soll es aussehen (alles innerhalb des roten rechtecks):
[img][/img]
Ich verwende Visual Studio 2010 mit der Qt-Integration.
Da bekommt man mit rechts click auf die Solution -> Add -> New Projekt ->QT4 Designer Plugin
schon fast alles erstellt was man brauch.
Da wird alles erstellt was im Kapitel "Benutzerdefinierte Widgets erstellen" aus dem QT-Buch beschrieben steht.
Genauer gesagt wurden 4 Files erstellt:
- folderviewer.h
folderviewer.cpp
folderviewerplugin.h
folderviewerplugin.cpp
ein ui-File erstellt mit dem Namen "FolderViewer.ui", das im Bild "FolderViewer_Widget.JPG" visualisiert wird.
Dann dachte ich: jetzt muss nur noch die folderviewer.h Klasse vom ui-File abgelitten werden.
Also habe ich folgende änderung vorgenommen:
#include <QtGui/QWidget>
#include "ui_FolderViewer.h"
class FolderViewer : public QWidget, Ui::FolderViewer
{
Q_OBJECT
public:
FolderViewer(QWidget *parent = 0);
~FolderViewer();
};
Das Projekt lässt sich jetzt auch wunderbar compilieren. Das Resultat ist eine dll und eine lib.
Diese Files habe ich jeweils in das Verzeichniss kopiert:
P:\QT\Desktop\Qt\4.7.4\msvc2005\plugins\designer\FolderViewer.dll
P:\QT\Desktop\Qt\4.7.4\msvc2005\plugins\designer\FolderViewer.lib
und in das Qt\bin Verzeichniss jeweils nochmal die dll
und in das Qt\lib Verzeichniss noch die lib.
Jetzt wird mir der FolderViewer auch im QT-Designer in der Widget Box angezeigt, aber sobald ich den auf die Oberfläche einer QtMainApplication drage erscheint nur ein leeres Rechteck.
Und wenn ich dann das compiliere und auf Members des FolderViewer-Widgets zugreifen will bekomme ich einen haufen compiler errors.
folderviewer.h(5): fatal error C1083: Cannot open include file: 'ui_FolderViewer.h': No such file or directory
Sieht jemand was ich falsch mache?
Mir ist auch nicht so ganz klar wie das ist mit dem Plugin? Das sollte doch so etwas sein wie eine Factory für das User defined Widget FolderViewer, oder?
Gruss
Daniel