Ich versuche, meine QTextEdit
Widget auf die gesamte Zelle der QGridLayout
zu erzwingen. Ich habe viele verschiedene Kombinationen aus QSizePolicy
und sizeHint()
ausprobiert, aber nichts hat den gewünschten Effekt.Widget in pyqt erweitern
In dem Beispiel unten habe ich ein Haupt-Widget der Mindestgröße 800x600 und ein weiteres Widget 'Blau' der Größe 100x100 in Spalte 1. So möchte ich die QTextEdit
in Spalte 0 700x600 sein.
Im Allgemeinen möchte ich "bearbeiten" zu sein (n- blue.width()
) xm, wenn mein Haupt Widget auf nxm Größe geändert wird.
import sys
from PyQt5 import QtWidgets, QtCore
if __name__ == '__main__':
qApp = QtWidgets.QApplication(sys.argv)
mainWidget = QtWidgets.QWidget()
mainWidget.setMinimumSize(800, 600)
mainLayout = QtWidgets.QGridLayout(mainWidget)
blue = QtWidgets.QWidget(mainWidget)
blue.setStyleSheet('background-color: blue')
blue.setFixedSize(100, 100)
edit = QtWidgets.QTextEdit(mainWidget)
### what to do here?
policy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Expanding)
edit.setSizePolicy(policy)
###
mainLayout.addWidget(edit, 0, 0, 1, 1, QtCore.Qt.AlignCenter)
mainLayout.addWidget(blue, 0, 1, 1, 1, QtCore.Qt.AlignCenter)
mainLayout.setColumnStretch(0, 1)
mainLayout.setColumnStretch(1, 0)
mainWidget.setLayout(mainLayout)
mainWidget.show()
sys.exit(qApp.exec_())
Danke, gibt es einen Grund dafür? Mein Verständnis ist, dass die Ausrichtung und die Größe Politik unabhängig sind? In diesem Beispiel ist die Ausrichtung natürlich unnötig. – Jonas