2016-08-19 9 views
0
def location_on_the_screen(self): 
    fg = self.frameGeometry() 
    sbrp = QDesktopWidget().availableGeometry().bottomRight() 
    fg.moveBottomRight(sbrp) 
    self.move(fg.topLeft()) 

Ich kann das Fenster nicht in der unteren rechten Ecke des Bildschirms platzieren. frameGeometry() funktioniert nicht so, wie es sollte. Hilf mir bitte, was kann ich tun?PyQt - Position des Fensters

Antwort

1

Hier ist eine mögliche Lösung für Fenster:

import sys 

from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget 


class MyWidget(QWidget): 

    def __init__(self): 
     super().__init__() 
     self.setFixedSize(400, 300) 

    def location_on_the_screen(self): 
     ag = QDesktopWidget().availableGeometry() 
     sg = QDesktopWidget().screenGeometry() 

     widget = self.geometry() 
     x = ag.width() - widget.width() 
     y = 2 * ag.height() - sg.height() - widget.height() 
     self.move(x, y) 

if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    widget = MyWidget() 
    widget.location_on_the_screen() 
    widget.show() 
    app.exec_() 
0

Ich nehme an, dass Ihr "Fenster" eine Unterklasse von QWidget ist. Wenn ja, sollte die folgende Ihre Bedürfnisse anzupassen:

import sys 

from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget 


class MyWidget(QWidget): 

    def __init__(self): 
     super().__init__() 
     self.setFixedSize(400, 300) 

    def location_on_the_screen(self):  
     screen = QDesktopWidget().screenGeometry() 
     widget = self.geometry() 
     x = screen.width() - widget.width() 
     y = screen.height() - widget.height() 
     self.move(x, y) 


if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    widget = MyWidget() 
    widget.location_on_the_screen() 
    widget.show() 
    app.exec_() 
+0

Danke für Ihre Antwort, aber dieser Code auch nicht funktioniert, wie ich brauche. :( http://i.imgur.com/YY0Y67D.png – Newbie

+0

Das gleiche Problem mit meinem Code. Http://i.imgur.com/QOQNEPB.png – Newbie

+0

Funktioniert perfekt auf MacOS und Ubuntu. Ich habe kein Windows-Betriebssystem installiert, so dass ich nicht testen kann, aber es scheint das Problem zu sein, die Höhe der Startmenüleiste zu sein, die von 'QDesktopWidget(). screenGeometry()' nicht berücksichtigt wird. –

Verwandte Themen