Forum: PC-Programmierung Qt widget in .net einbinden


von tobias (Gast)


Lesenswert?

Hallo,

ich möchte ein in Qt erstelltes Widget in .net verwenden.
Hintergrund ist, dass ein freund mein qt Widget in seiner .net Umgebung 
verwenden möchte. Leider habe ich bisher nur mit qt und er nur .net 
gearbeitet.

Ich habe dazu folgenden Link gefunden: 
http://doc.qt.nokia.com/4.7/activeqt-dotnet.html

Hat damit schon jemand Erfahrung gemacht?
Vielleicht hat ja jemand ein kleines Beispiel Projekt oder ähnliches.
So das ich eine Vorlage oder ähnliches habe, wie ich mit qt eine zu .net 
kompatible lib oder dll oder was auch immer erstellen kann.

schon mal vielen dank
tobi

von Karl H. (kbuchegg)


Lesenswert?

tobias schrieb:
> Hallo,
>
> ich möchte ein in Qt erstelltes Widget in .net verwenden.
> Hintergrund ist, dass ein freund mein qt Widget in seiner .net Umgebung
> verwenden möchte.

Geht es nur um dieses eine Widget?

Umpf.
Ich denke ehrlich gesagt nicht, dass so etwas wahnsinnig sinnvoll ist. 
Neben dem .Net Mechanismus musst du dir dann auch den kompletten Qt 
Mechanismus zur Verteilung von Messages, Signals und Slots, 
Object-Verwaltung, Garbage Collection, die Idle Loop die alles verteilt 
etc. mit ins Boot holen.

Ich kenn zwar dein Widget nicht, ich denke aber, dass es deutlich 
einfacher (auch in der Verwendung) sein dürfte, die Funktionalität 
deines Qt-Widgets in .Net nachzuprogrammierern. Zumal das Erstellen von 
Controls (so heißt das dann in .Net) in C# nicht wirklich schwer und 
sauber dokumentiert ist.

von tobias (Gast)


Lesenswert?

Hallo,

das widget ist in sich abgeschlossen, es bekommt nur einen string 
übergeben.
Es müssen also keine Verknüpfungen von signals und slots mehr 
vorgenommen werden.
Aber das spielt sicher keine rolle, oder?

von Karl H. (kbuchegg)


Lesenswert?

tobias schrieb:
> Hallo,
>
> das widget ist in sich abgeschlossen, es bekommt nur einen string
> übergeben.
> Es müssen also keine Verknüpfungen von signals und slots mehr
> vorgenommen werden.
> Aber das spielt sicher keine rolle, oder?

Ein Widget ist ja auch noch mehr.
Ein Widget kann in Qt in ein Layout eingebettet werden, welches dann zb 
anhand von Positioniertvorschriften die Lage und die Größe des Widgets 
bestimmt, das Widget muss darüber Auskunft geben können, wie seine GUI 
Einstellungen sind etc.

Das alles sind Mechanismen die in Qt völlig anders funktionieren als zb 
in C# mit .Net.

Wenn dein Widget überhaupt nichts Sichtbares hat, dann erhebt sich 
allerdings die Frage: Wozu ist es überhaupt ein Widget?
Kannst du eventuell den Code, der den String bearbeitet (und dann was 
mit dem Ergebnis tut? Ist das ein QString?) nicht überhaupt in eine 
eigene Funktion und/oder Klasse auslagern, so dass die eigentliche 
Funktionslität nichts mit dem Widget an sich zu tun hat. Dann benutzt 
dein Widget diese Funktion/Klasse und der Code deines Freundes tut genau 
das gleiche, nur eben von seinem Programm aus.

von tobias (Gast)


Lesenswert?

das widget liest eine große menge Messdaten aus dem string, wertet diese 
aus und stellt sie anschließend in einem opengl window grafisch dar, in 
welchem der benutzer je nach einstellungen die daten unterschiedlich 
angezeigt bekommt.

von Karl H. (kbuchegg)


Lesenswert?

tobias schrieb:
> das widget liest eine große menge Messdaten aus dem string, wertet diese
> aus und stellt sie anschließend in einem opengl window grafisch dar, in
> welchem der benutzer je nach einstellungen die daten unterschiedlich
> angezeigt bekommt.

Dann würde ich an deiner Stelle damit anfangen, die Auswertung in eine 
eigene Klasse auszulagern (ich denke darum geht es in erster Linie), die 
sich nur um die Auswertung kümmert. Sie kriegt einen String (kein 
QSTring!) und liefert einen Datencontainer, der die ausgewerteten Daten 
repräsentiert (wieder: nix Qt spezifisches).

Damit hast du dann eine Chance, so was wie ein Baukastensystem 
hochzuziehen, aus dem ihr beide euch bedienen könnt. Du setzt diesen 
Baustein mit Qt ein, dein Kumpel mit .Net.

Das geht aber nur dann, wenn in diesem Baustein nur Standardmittel 
verwendet werden. Also nix Qt spezifisches und auch nix .Net 
spezifisches. Nur Standard-C++ Mittel sind erlaubt.

von tobias (Gast)


Lesenswert?

ok ... mhm
die Auswertung der daten ist nicht wirklich kompliziert.
eher die grafische Realisierung mit opengl.

wie aufwändig ist es für mich von qt auf .net umzusteigen
und wo finde ich gute foren oder ein gutes tutorial zu .net?

kann ich opengl genauso einfach unter .net nutzen wie unter qt?

sind vielleicht einfache fragen, aber eh ich nochmal lange suche.

danke

von Karl H. (kbuchegg)


Lesenswert?

tobias schrieb:

> wie aufwändig ist es für mich von qt auf .net umzusteigen

kann ich nicht sagen.
.Net ist in erster Linie eine Laufzeitbibliothek. Welche Sprache benutzt 
denn dein Kumpel: C#, C++ oder etwa Visual Basic?

> und wo finde ich gute foren oder ein gutes tutorial zu .net?

google.

>
> kann ich opengl genauso einfach unter .net nutzen wie unter qt?

Klar.

von tobias (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> .Net ist in erster Linie eine Laufzeitbibliothek. Welche Sprache benutzt
> denn dein Kumpel: C#, C++ oder etwa Visual Basic?

es basiert alles auf c++

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.