Festlegen der anfänglichen Größe des widgets in PyQt, die größer als 2/3rds des Bildschirms
Im Hauptfenster habe ich ein zentrales widget hat eine Natürliche Größe, und ich möchte, um ihn zu initialisieren, um diese Größe. Allerdings glaube ich nicht, dass es behoben werden auf diese Größe; der Benutzer sollte in der Lage sein, zu verkleinern oder zu erweitern.
Den Qt-Dokumentation besagt, dass:
Hinweis: Die Größe des top-level-widgets beschränkt sind, zu 2/3 des
desktop Höhe und Breite. Sie können die Größe() das widget manuell, wenn
diese Grenzen sind unzureichend.
Aber ich bin nicht in der Lage zu verwenden, die resize
vorgeschriebene Methode.
Folgendes minimal-Beispiel zeigt das problem: Wenn die Breite und Höhe an, wie w
und h
weniger als 2/3 der von dem Bildschirm, dann wird das Fenster der erwarteten Größe. Wenn Sie größer sind, wird das Fenster etwas abgeschnitten Größe.
#!/usr/bin/env python
from PyQt4 import QtCore, QtGui
import sys
w = 1280; h = 720
app = QtGui.QApplication (sys.argv [1:])
frm = QtGui.QFrame ()
frm.sizeHint = lambda: QtCore.QSize (w, h)
win = QtGui.QMainWindow ()
win.setCentralWidget (frm)
win.show ()
sys.exit (app.exec_ ())
sizeHint
Methode statt?sizeHint
erfolgreich Hinzugefügt wurde, um das Objekt; wenn Sie die Breite und Höhe weniger als 2/3 des Bildschirm, das widget ruft die richtige Größe. (Die Einschränkung ist fest in Qt)InformationsquelleAutor RolKau | 2015-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies sollte es tun für Sie, ich denke,
win.statusBar ().showMessage ('Hello, World!')
, das zentrale widget ist weniger als die angegebene Größe.Ich kann natürlich
win.resize(w, h + win.statusBar().size ().height ())
zu empfangen, bei allen anderen widgets kann ich in der main-Fenster, aber ich Wünsche mir eine weniger umständliche Lösung.InformationsquelleAutor Achayan
Die obige Antwort ist nur gut, außer, dass
QApplication
,QFrame
undQMainWindow
sind nicht TeilQtGui
im offiziellen PyQt5. Sie sind Teil der QtWidgets.InformationsquelleAutor Whitequill Riclo