Seite 1 von 1
Ein paar Fragen...
Verfasst: Dienstag 12. Mai 2009, 19:46
von macmallow
hallo ich habe gerade angefangen ich mit pyqt zu befassen, und habe ein paar Fragen:
1) wie kann ich ein rahmenloses Fenster erstellen ? Also ohne den Schließen & Minimieren Button!
2) Was genau ist QFrame?
3) Wo ist der Unterschied zwischen QWidget und QMainWindow? Kann doch mit beiden Fenster erstellen so wie ich das mitgekriegt habe ?
Danke schonmal! Hab vorher nur mit wxpython gespielt, und daher ist qt etwas neu für mich...
Verfasst: Dienstag 12. Mai 2009, 19:57
von derdon
QWidget ist ein allgemeines Widget, von dem viele andere Klassen ableiten (siehe Doku). QMainWindow ist (der Name verrät es ja schon) dazu, das Hauptfenster einer Applikation darzustellen. Daher kann man mit diesem u.a. eine Menübar, eine Statusleiste und DockWidgets hinzufügen.
Verfasst: Dienstag 12. Mai 2009, 20:11
von macmallow
Aha Danke

.. Hast du noch eine Idee wegen 1) ? Ist mir sehr wichtig, weil ich eine Anwendung von wxpython auf qt portieren will!
Verfasst: Dienstag 12. Mai 2009, 20:24
von derdon
Erstelle einen QDialog, der modal ist (damit er nicht geschlossen werden kann).
QFrame ist dazu da, Widgets einen Rahmen zu geben.
Verfasst: Dienstag 12. Mai 2009, 20:27
von macmallow
Hmm aber dadurch verschwindet der Rahmen doch auch nicht ? Will als Endergebniss nichts mehr vom Fenster sehen, sondern nur noch die TextBox für eine Eingabe!
Verfasst: Dienstag 12. Mai 2009, 20:45
von BlackJack
Für so etwas gibt's flags:
http://docs.huihoo.com/pyqt/pyqt4/html/ ... wType-enum
Für Dich wäre wohl `Qt.FramelessWindowHint` interessant. Allerdings ist das wie der Name schon sagt nur ein Hinweis. Ein Windowmanager *muss* dem nicht nachkommen.
Verfasst: Dienstag 12. Mai 2009, 21:06
von macmallow
Das wirds wohl sein

.. Und wie kann ich das setzen?
Verfasst: Dienstag 12. Mai 2009, 22:41
von lunar
Verfasst: Mittwoch 13. Mai 2009, 17:52
von macmallow
Danke

.. Gibts eig. noch die Möglichkeit, die WingIDE (oder jede andere IDE die ich probiert habe) so einzurichten, dass ich einnützliches AutoComplete habe? IM mOment werden mir nur Funktionsnamen, alllerdings ohne Parameter angeboten und Konstanten wie Qt.FramelessWindowHint werden mir gar nicht vorgeschlagen..
Bins von C++ und Java schon ziemlich gewöhnt, und es wäre schade wenn das nicht geht!
Verfasst: Mittwoch 13. Mai 2009, 18:57
von DasIch
Diese Features wird dir eine IDE für dynamische Sprachen nicht unbedingt bieten können.
Verfasst: Mittwoch 13. Mai 2009, 22:31
von Leonidas
macmallow hat geschrieben:Bins von C++ und Java schon ziemlich gewöhnt, und es wäre schade wenn das nicht geht!
Das sind ja auch beides Sprachen in denen das Typsystem statisch ist und somit auswertbar ohne das Programm selbst auszuführen.
Verfasst: Mittwoch 13. Mai 2009, 22:37
von macmallow
Schon klar, aber die Parameter einer Funktion werden ja auch bei Python definiert

.. Und die Konstanten (QFramelessWindowHint) werden mir ebenfalls nicht angezeigt.
Verfasst: Mittwoch 13. Mai 2009, 22:49
von lunar
Die Definition einer Funktion ist in Python nicht das gleiche wie in C++ oder Java. Funktionen sind in Python Objekte wie alles andere auch und können daher an beliebige Namen gebunden werden, ebenso wie an den Namen einer Funktion ein beliebiges anderes Objekt gebunden werden kann. In C++ und Java sind Funktionen/Methoden dagegen statisch und daher leicht zu analysieren.
Bis zu einem gewissen Grad funktioniert Vervollständigung auch für Python. Dem Hörensagen nach sollen Eclipse/PyDev (kostenlos) und WingIDE (nicht kostenlos) in dieser Hinsicht recht brauchbar sein. Wunder solltest du allerdings nicht erwarten, die Vervollständigung mag mitunter an Situationen scheitern, die für einen Menschen völlig klar sind.