PyQt5 - Größe-label, um das ganze Fenster auszufüllen

from PyQt5 import QtGui, QtCore, QtWidgets

class Window(QtWidgets.QWidget):
    def __init__(self):
        QtWidgets.QWidget.__init__(self)
        self.label = QtWidgets.QLabel(self)
        self.label.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
        self.label.resize(800, 600)
        self.label.setContentsMargins(0, 0, 0, 0);
        self.pixmap = QtGui.QPixmap("image.jpg")
        self.label.setPixmap(self.pixmap)
        self.label.setMinimumSize(1, 1)
        self.label.installEventFilter(self)
        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(self.label)

    def eventFilter(self, source, event):
        if (source is self.label and event.type() == QtCore.QEvent.Resize):
            self.label.setPixmap(self.pixmap.scaled(
                self.label.size(), QtCore.Qt.KeepAspectRatio))
        return super(Window, self).eventFilter(source, event)

if __name__ == '__main__':

    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = Window()
    window.show()
    window.resize(800, 600)
    sys.exit(app.exec_())

Dies ist meine Bewerbung, mein Ziel ist einfach - ein Bild, das füllt das ganze Fenster und ändert die Größe, nachdem Sie das Fenster Größe ändern.

Dieser code funktioniert okay in der Größe des Bildes, aber das label deckt nicht das gesamte Fenster, ich habe diese "Grenzen". Wie kann ich Sie entfernen/verkleinern Sie das Etikett, um die Größe der Fenster?
Ich arbeite auf Windows, wenn dieses ändert die Dinge.

PyQt5 - Größe-label, um das ganze Fenster auszufüllen

Dass ist der Effekt, den ich jetzt bekommen.

  • Was ist das gewünschte Verhalten der Anwendung? Wenn das Bild image.jpg hat nicht passen in die Fenster (wie in dem angegebenen screen-shot), was soll passieren? Das Bild-Seitenverhältnis ändern sollte? Oder Teil des Bildes beschnitten werden soll?
  • Bild sollte über die gesamte Fenster, wenn es zu klein sollte es werden, up-scaling. Gerade jetzt, wenn ich die Größe des Bildes skaliert, aber ich möchte nicht diese grauen "Grenzen".
  • - Seitenverhältnis des Bildes (Fenster-und widget) sollte beibehalten werden oder es haben zu Folgen das Seitenverhältnis des Fensters?
  • Ich denke, es sollte mehr oder weniger erhalten, aber ich nehme die zweite option auch 🙂
InformationsquelleAutor MWaw | 2017-04-23
Schreibe einen Kommentar