J'essaye de forcer mon widget QTextEdit
pour couvrir la cellule entière du QGridLayout
. J'ai essayé beaucoup de différentes combinaisons de QSizePolicy
et sizeHint()
, mais rien n'a l'effet désiré. Dans l'exemple ci-dessous, j'ai un widget principal de taille minimum 800x600 et un autre widget 'blue' de taille 100x100 dans la colonne 1. Donc je veux que le QTextEdit
dans la colonne 0 soit 700x600.développez Widget dans pyqt
En général, je veux que 'edit' soit (n- blue.width()
) xm si mon widget principal est redimensionné en nxm.
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_())
Merci, est-il une raison? Ma compréhension est que l'alignement et la politique de taille sont indépendants? dans cet exemple, l'alignement est bien entendu inutile. – Jonas