welche programmiersprache für Programme benutzen?
-
Wie macht man aus einem QMainWindow ein QWidget?
Deine Probleme liegen nicht bei Qt. Du hast das Konzept Vererbung nicht verstanden. Du brauchst aus QMainWindow kein QWidget machen, es ist schon eins. Das verraet mir die Doku, also ein einfacher Klick auf All Classes -> QMainWindow.
The QMainWindow class provides a main application window. More...
#include <QMainWindow>
Inherits QWidget.Fein, dann erklär mir wie ich meine Linie malen soll. Devicecontexte braucht keiner, soweit geh ich mit. Aber irgendeine Möglichkeit eine maleLinie(int x1, int y1, int x2, int y2, struct farbe f)-Funktion zu implementieren muss es doch geben.
Das entsprechende Tutorial habe ich dir bereits verlinkt.
-
nwp2 schrieb:
Naja, es gibt ja noch google, und schon findet man QPushButton::QPushButton ( const QString & text, QWidget * parent = 0 ).
Sieht aus als wäre es das was ich will. Parent ist wohl das Fenster wo der Button rein soll. Wie macht man aus einem QMainWindow ein QWidget? Und schon drehe ich mich wieder endlos im Kreis.Für genau sowas gibt es eine Dokumentation. Und auf http://qt.nokia.com/doc/4.7-snapshot/qmainwindow.html steht gleich in der 5. Zeile: "Inherits QWidget". Also kannst du dein QMainWindow direkt an den QPushButton übergeben.
nwp2 schrieb:
... äh, wozu brauch man Device-Kontexte? Durch die Abstraktion muss man sich doch mit sowas dankenswerterweise nicht mehr rumschlagen.
Fein, dann erklär mir wie ich meine Linie malen soll. Devicecontexte braucht keiner, soweit geh ich mit. Aber irgendeine Möglichkeit eine maleLinie(int x1, int y1, int x2, int y2, struct farbe f)-Funktion zu implementieren muss es doch geben.
Im einfachsten Fall:
QPainter p(mainwindow); p.drawLine(x1, y1, x2, y2;
Das findest du aber unter "Graphics & Paint system" in der Doku (Link siehe ein paar Beiträge weiter oben).
PS: Den Fehler mit der Suche habe ich auch, es ist aber kein Aufwand, unter "All Classes" mit der Browser-Suchfunktion mal nach "Button" zu suchen.
-
nwp2 schrieb:
Wie macht man aus einem QMainWindow ein QWidget?
Tja, scheiße wenn man C++ nicht kann oder zu dumm ist die Dokumentation zu lesen.
Du verteufelst eine Bibliothek weil du zu inkompetent bist um sie zu benutzen.
Zeichnen in Qt ist übrigens kein Problem. Von QWidget ableiten und die Paint-Methode neu implementieren. Das hättest du gewusst, hättest du die Doku und Beispiele richtig gelesen.
-
Um mal etwas genauer zu sagen was ich eigentliche tue:
Das ganze wird am Ende eine Art IDE, wie Visual Studio oder Eclipse. Dafür brauche ich ein sehr erweitertes EditControl. Außerdem hantiere ich viel mit dem Text, sodass ich ihn eh in meiner Struktur habe. Es ist also unnötig, dass die GUI den Text nochmal speichert, geschweige denn sich die Farben merkt, die kann ich nämlich dynamisch generieren, außerdem ändern die sich häufig.
Der Editor unterstützt auch Folding, und damit man sieht wo geklappt wurde zeichne ich eine Linie zwischen die Zeilen wo eingeklappt wurde, ähnlich wie es Scite tut. Visual Studio tut es nicht, aber ich denke ihr wisst was ich meine.Die Funktionen die das Editcontrol malen und die Farben generieren und so weiter sind praktisch fertig und kosten keinen Aufwand mehr. Ich muss nur noch die Text- und Linienmal-Funktionen in irgendwas linuxverständlichem implementieren.
Der Editor hat aber auch ein Menü, Tabs und Scrollbars und so weiter, deshalb fallen DirectX, SDL und ähnliches aus (ich glaube die können keine Menüs, aber ich kann mich täuschen), ich habe keine Lust alles selbst zu malen.
Edit: Nu kommt mal wieder runter, es gibt schlimmeres als Jemanden der QT nicht versteht.
Ich habe Vererbung schon verstanden, ich benutze sie auch. Ich suche mich nur dumm und dämlich wenn ich durch die QT-Funktionen klicke.
Ich habe mich auch nicht allzu lange mit QT beschäftigt, wie gesagt, ich habe wohl zu früh aufgegeben.
-
Und das ist alles gar kein Problem mit Qt. Aber hey! Du bist Fail!
-
RUUUHE jetzt!
-
derdefeckter schrieb:
hallo,
kann ich mit c auch problemlos grafische programme erstellen also nicht nur als konsolenanwendung.
in c++ gabs bei mir irgendwie immer probleme bei der erstellung einer windows form anwendung
und java ja java bin ich auch nicht so für habt ihr denn noch andere vorschläge?
mfg derdefeckter
Bleib doch bei C++ , schau dir mal die Toolsets an.
Absolut Spitze ist MFC, gibt auch noch QT und WX und noch einige andere.
Bei der Auswahl solltest du am besten alle mal durchtesten und eine Mini Anwendung erstellen und schauen wo du mit am besten zurecht kommst.
Persönliche Meinung:
WXwidgets , Doku nicht so dolle , Installation ein Grauß , funktioniert aber.QT super Doku , mit dem QT Creator gar kein Prob bei der Instalation ( schicke funktionierende IDE ), funktioniert auch gut. Gibt auch Bücher dazu , sogar eines als Open Book in Englisch.
Was ich bisher nicht ergründen konnte wie sich das mit der LGPL und closed Source verhält. Kostenpunkt der komerziellen Lizen 3000.-. Eine eindeutige Aussage auf die man sich Berufen könnte gibt es nicht und die Formulierung in der Lizenz ist "schwammig"MFC Doku absolut Super, Installation easy ( Visual Studio ab Standart Edition), Umfang Gigantisch. Ein goßteil der Programme für MS ist in MFC geschrieben, so falsch liegt man damit nicht. Und ist auch im neuen Visual Studio wieder weiterentwickelt worden. Kosten Visual Studio 2008Standart Edition ca. 200.- . Es gibt auch eine 90 Tage Trial Version mit der man mal reinschnuppern kann.
Bietet auch gegenüber den anderen Toolsets dinge wie ATL und auch einfach Komunikation zum MS LDAP, welcher einem doch im AD des öfteren über den Weg läuft.
In der Professionell Edition gibt es noch den MS Server 2008 dazu und anderes, mit dem MS Server hat man eine der besten Umgebungen zum Entwickeln. Win 32 API, Posix API , BSD Posix version ( Unix Subsystem installieren und Unix Tools installieren ), da hat man dann eine C Shell , BSD Posix Shel und System 5 Posix Shell jeweils mit allen Shell Tools, VI , Dif, Grep und alles andere nach dem Posix Standart. Auch Kompiler für c und C++ in der Shell.MFC ist allerdings nur MS Entwicklung, da muß man schauen wie wichtig da Portierbarkeit ist , allerdings hat MS noch über 90 % Marktanteil im Clientbereich.
Winforms ist allerdings cli .net und nicht iso c++ , da muß man etwas umdenken bzw einen anderen Syntax verwenden oder gleich c# ( ich komme aber mit cli besser zurecht als mit c#, bzw mag ich an C# nicht das wenn ich eine Float verwende ein Präfix anhängen muß das ich wirklich eine Float verwende ^^. Und andere komische Dinge die mir "Krude" erscheinen )
-
nwp2 schrieb:
[...]Wie macht man aus einem QMainWindow ein QWidget? Und schon drehe ich mich wieder endlos im Kreis.[...]
Wärst du mal lieber maurer geworden...
Also Qt ist ohne frage die beste GUI-bibliothek (und Qt bringt ja auch eigentlich fast alles mit, was man sonst noch so braucht), die es für C++ gibt. Auch für C gibts nix besseres. Fakt.
-
MasterK schrieb:
Also Qt ist ohne frage die beste GUI-bibliothek (und Qt bringt ja auch eigentlich fast alles mit, was man sonst noch so braucht), die es für C++ gibt. Auch für C gibts nix besseres. Fakt.
QT für C? Soweit ich weiß ist QT in C++ geschrieben, dass macht es für ein C-Programm sehr umständlich damit zu arbeiten.
Laut wiki ist QT unter Duallizenz GPL/proprietär verfügbar, also nicht LGPL, damit muss man alles was man mit QT baut entweder unter die GPL stellen oder sich eine Lizenz kaufen.
Edit: "Seit der Version 4.3.1 vom 9. August 2007 räumt Trolltech Ausnahmen bei der durch die GPL lizenzierten Open-Source-Version ein, die es ermöglicht, Programme, die Qt benutzen, unter einer nicht-GPL-kompatiblen Lizenz zu veröffentlichen. Die akzeptierten Lizenzen sind namentlich in einer separaten Liste aufgeführt."
-
Er wollte sagen: Auch für C gibt es keine Bibliothek, die besser ist als Qt unter C++.
-
ipsec schrieb:
Er wollte sagen: Auch für C gibt es keine Bibliothek, die besser ist als Qt unter C++.
Wär auch irgendwie unlogisch, da C++ doch großteils eine Erweiterung von C ist.
-
nwp2 schrieb:
Ich nehme das über die Doku von QT zurück. Hab QT mit GTK verwechselt. QT hatte ich aufgegeben wegen c++. Das war wohl etwas vorschnell.
Seltsame Augen hast du:
http://www.gtk.org/documentation.htmlmdmr schrieb:
Absolut Spitze ist MFC, gibt auch noch QT und WX und noch einige andere.
MFC ist wohl so ziemlich das Letzte mit einem horror grässlichem C++.Grüssli
-
Dravere schrieb:
MFC ist wohl so ziemlich das Letzte mit einem horror grässlichem C++.
Unsinn. Du kannst wohl auch nur nachplappern, hast aber noch nie mit den MFC gearbeitet.
-
ms fanboy schrieb:
Dravere schrieb:
MFC ist wohl so ziemlich das Letzte mit einem horror grässlichem C++.
Unsinn. Du kannst wohl auch nur nachplappern, hast aber noch nie mit den MFC gearbeitet.
Ich habe mehrere Jahre mit der MFC gearbeitet. Muss leider immer noch Support leisten für Produkte, welche mit der MFC entwickelt wurden. Ich würde nur unter Zwang und Folter ein neues Produkt mit der MFC anfangen
Grüssli
-
ms fanboy schrieb:
Unsinn. Du kannst wohl auch nur nachplappern, hast aber noch nie mit den MFC gearbeitet.
Mit dem Nick brauchen wir uns über das auch nicht zu unterhalten (P.S: Ich habe schon vor längeren mit der MFC arbeiten müssen, und man sieht dem Framework an, das es schon lange veraltet ist).
-
asc schrieb:
ms fanboy schrieb:
Unsinn. Du kannst wohl auch nur nachplappern, hast aber noch nie mit den MFC gearbeitet.
Ich habe schon vor längeren mit der MFC arbeiten müssen, und man sieht dem Framework an, das es schon lange veraltet ist
Was findest Du so schlecht an den MFC? Ich finde sie sehr praktisch, nicht nur durch die Integration in VS. Man kann mit den MFC sehr einfach und schnell Windows-Programme entwickeln und sogar mit WinAPI-Aufrufen mischen. Ja, die Datenbankanbindung ist Mist, aber sonst habe ich nichts daran auszusetzen.
-
ms fanboy schrieb:
Was findest Du so schlecht an den MFC? Ich finde sie sehr praktisch, nicht nur durch die Integration in VS. Man kann mit den MFC sehr einfach und schnell Windows-Programme entwickeln und sogar mit WinAPI-Aufrufen mischen. Ja, die Datenbankanbindung ist Mist, aber sonst habe ich nichts daran auszusetzen.
Ich denke dazu muss man nur sagen: wer einmal mit MFC und einmal mit Swing gearbeitet hat, der stellt solche Fragen nicht.
Wobei Swing natürlich sehr schön ist, aber auch Qt oder gtkmm sind gute Toolkits.
-
Dravere schrieb:
nwp2 schrieb:
Ich nehme das über die Doku von QT zurück. Hab QT mit GTK verwechselt. QT hatte ich aufgegeben wegen c++. Das war wohl etwas vorschnell.
Seltsame Augen hast du:
http://www.gtk.org/documentation.htmlDie habe ich gefunden und viele Stunden versucht damit was zu machen. Er zwingt einem ständig GTK+ auf. Abgesehen davon gibt es pro Funktion eine Zeile Kommentar, wenn überhaupt.
Ich bin wahrscheinlich nur von der WinAPI verwöhnt, da gibts eine Zeile Funktion und eine Seite Erklärung der Parameter, Hinweise, übliche Fehler, Beispiele, welche Header und Libs man braucht und eine Referenz zu ähnlichen Funktionen.Aber naja, wer GTK mag soll es benutzen. Ich komme aber weiterhin mit C-Bibliotheken und vor allem mit der WinAPI recht gut klar, mit QT und GTK garnicht.
-
Shade Of Mine schrieb:
ms fanboy schrieb:
Was findest Du so schlecht an den MFC? Ich finde sie sehr praktisch, nicht nur durch die Integration in VS. Man kann mit den MFC sehr einfach und schnell Windows-Programme entwickeln und sogar mit WinAPI-Aufrufen mischen. Ja, die Datenbankanbindung ist Mist, aber sonst habe ich nichts daran auszusetzen.
Ich denke dazu muss man nur sagen: wer einmal mit MFC und einmal mit Swing gearbeitet hat, der stellt solche Fragen nicht.
Wobei Swing natürlich sehr schön ist,
ist das sarkasmus? Swing war der grund fuer mich meine schlechte meinung ueber MFC zu ueberdenken, spaetestens als ich sah wie die einzelnen bildelementes von swing einzeln aufgebaut wurden war das ding fuer mich gestorben.
aber auch Qt oder gtkmm sind gute Toolkits.
wxWidget :FTW:
-
nwp2 schrieb:
Die habe ich gefunden und viele Stunden versucht damit was zu machen. Er zwingt einem ständig GTK+ auf.
ROFL, das wird ja immer wie lächerlicher. Logisch wenn du mit GTK arbeitest, zwingt er dich zu GTK+, weil GTK+ ist GTK. Da gibt es keinen Unterschied. Man schreibt nur ungern immer noch das '+' hin, weshalb man oft einfach nur GTK schreibt.
nwp2 schrieb:
Abgesehen davon gibt es pro Funktion eine Zeile Kommentar, wenn überhaupt.
Im allgemein sind es eher mehr als eine Zeile. Zudem kommen noch allgemeine Informationen zu einem Bereich und eine Menge an Tutorials und Anleitungen. Jedenfalls hat es sicher genügend Dokumentation, um damit vernünftig und angenehm entwickeln zu können.
nwp2 schrieb:
Ich bin wahrscheinlich nur von der WinAPI verwöhnt, ...
Ich habe eher das Gefühl, dass du zu faul bist, mal etwas neues zu probieren. Und wenn mal etwas nicht so ist, wie man es sich gewohnt ist, meckert man gleich rum und schreibt die Sache ab, statt dass man gegen seine Gewohnheiten angeht und was neues lernt.
Aber ich stimme dir zu, dass es wirklich jedem sein Bier ist, mit welcher Bibliothek er lieber entwickelt. Solange du nicht solchen Unsinn über die anderen Bibliothek schreibst, ist alles in Ordnungrapso schrieb:
wxWidget :FTW:
Wenn sie mal die Bibliothek durchputzen und die oberen Entwickler durch frisches Gemüse ablösen würden. Ihre krankhafte Angst vor neuer Technologie ist einfach nur nervend. Unbedingt wollen sie noch UR-UR-UR-UR-Alt Kompiler unterstützen, statt diese endlich fallen zu lassen. Auch ihre Angst vor der Standardbibliothek ist einfach nur lächerlich. Dann auch die riesige Menge an Makros, wo man mindestens 90% durch Templates ablösen könnte, was sie aber unbedingt auch nicht einsetzen wollen. Dann die automatische und nicht kontrollierbare Referenzzählung, wodurch man gewzungen wird alles auf den Heap zu setzen und überall mit Zeiger hantieren muss.
Oder dann solche Dinge wie wxTextValidator. Geht man in den Source Code schauen, findet man dies hier in der Validate Funktion:wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow;
Es steht aber nirgends in der Dokumentation, dass man ihn ausschliesslich für wxTextCtrl verwenden darf. Wenn du ihn für etwas anderes verwendest, hast du hier wunderbares undefiniertes Verhalten, wo du eine halbe Ewigkeit dran suchst. Aber die C++ Casts wollen sie ja auch nicht einsetzen.
usw. usf.
Die Biblothek wird älter und älter und älter und sie machen nichts dagegen.Grüssli