[pyqt] Always on Top

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Mittwoch 15. April 2009, 14:14

Hi Community,
mein erster Post hier! Juchu!

Bin gerade dabei eine GUI zu programmiern, die immer im Vordergrund sein soll. Sprich, wenn man den focus des Programmes wechselt, soll dieses immer im Vordergrund bleiben.

Ich arbeite mit python 2.5.4 und der entsprechenden Qt version. Außerdem läuft das ganze auf einem Windowsrechner.

Kann mir irgendjemand helfen?
lunar

Mittwoch 15. April 2009, 14:35

Qt erlaubt es, bestimmten Fenstern Flags zu verpassen. Unter den verfügbaren Flags gibt es "WindowStaysOnTopHint". Diesen Flag setzt du entweder über den Konstruktor oder über die windowFlags-Eigenschaft von QWidget.

Allerdings handelt es sich dabei unter X11 nur um eine Empfehlung an den Window-Manager. Diesem steht es frei, die Empfehlung zu ignorieren, zumal manche Window-Manager (insbesondere Tiling-WMs) so etwas wie "Vordergrund" gar nicht kennen. Zwar kann das umgangen werden, in dem man dem WM die Kontrolle über das Fenster entzieht, das aber ist in den seltensten Fällen empfehlenswert.
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Mittwoch 15. April 2009, 15:41

Ich hab noch nicht so ganz verstanden wie ich diese Flags setzen kann.

So?

Code: Alles auswählen

QtGui.QWidget.windowFlags("WindowStaysOnTopHint")
oder

Code: Alles auswählen

self.setWindowFlags(WindowStaysOnTopHint)
wo self mein QWidget ist?

Edit: Beides scheint nicht zu klappen.
Beim 2. Beispiel sagt er, dass WindowStaysOnTopHint nicht finden kann.
Wie kann ich den die Konstanten ansprechen?


oder wie sieht der Code genau aus?
lunar

Mittwoch 15. April 2009, 16:09

Code: Alles auswählen

self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Mittwoch 15. April 2009, 17:59

Bei mir kommt dann die Fehlermeldung:

Qt is not defined.

Ich importier nämlich die Module so:

Code: Alles auswählen

    from PyQt4 import QtCore
    from PyQt4 import QtGui
Wie kann greif ich denn dann darauf zu?
Benutzeravatar
snafu
User
Beiträge: 5493
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 15. April 2009, 18:20

Code: Alles auswählen

QtCore.Qt.WindowStaysOnTopHint
shcol (Repo | Doc | PyPi)
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Mittwoch 15. April 2009, 18:25

anogayales hat geschrieben:Ich importier nämlich die Module so:

Code: Alles auswählen

    from PyQt4 import QtCore
    from PyQt4 import QtGui
Warum nicht so?

Code: Alles auswählen

from PyQt4 import QtCore, QtGui
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Mittwoch 15. April 2009, 18:28

Danke, klappt nun alles!

Auch das mit der Vereinfachung!
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

Dienstag 25. August 2009, 14:43

geht das auch mit Tkinter?
mind like a sieve
lunar

Dienstag 25. August 2009, 14:52

Diese Frage gehört in einen eigenen Thread im richtigen Unterforum.
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

Dienstag 25. August 2009, 15:40

- .-
passt aber zum thema
mind like a sieve
lunar

Dienstag 25. August 2009, 17:47

Das Thema dieses Forums und damit auch dieser Diskussion ist vor allem PyQt. Da passt Tkinter eher schlecht zum Thema ;)

Aber es ist deine Sache, wenn Du glaubst, in diesem Forum wären viele Tkinter-Experten unterwegs … wer PyQt benutzt, hat in der Regel keine Verwendung mehr für Tkinter :)
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

Donnerstag 27. August 2009, 15:50

ääh, ich hantiere normalerweise auch mit tkinter und hab hierhergefunden -.-
mind like a sieve
Benutzeravatar
snafu
User
Beiträge: 5493
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Donnerstag 27. August 2009, 16:00

Es geht ja nicht mal darum, ob man von den entsprechenden "Experten" gelesen wird, sondern dass die verschiedenen Unterforen hier ihren Sinn haben und man sich auch daran halten sollte. Die Zeit, die du hier mit deinem Gestänker verbringst, hättest du besser nutzen können für einen eigenen Thread im TKinter-Forum, sofern du denn ernsthaft an einer Antwort interessiert bist.
shcol (Repo | Doc | PyPi)
Monty Python
User
Beiträge: 29
Registriert: Mittwoch 29. Oktober 2008, 21:29
Wohnort: Chemnitz
Kontaktdaten:

Donnerstag 27. August 2009, 16:08

inzwischen nicht mehr
mind like a sieve
Antworten