QComboBox et QSpinBox en alignement approprié avec QTableWidget
-
02-10-2019 - |
Question
Comment créer un widget QTable qui a 2 columnes, et dans la première colonne il y a un QComboBox et dans la deuxième colonne il y a une QSpinBox de sorte que la zone de liste déroulante obtient tout l'espace de table et seulement des feuilles de très petite place pour QSpinBox (2-3 chiffres).
La solution
Tout d'abord, utilisez setCellWidget()
pour régler la QComboBox
et QSpinBox
comme les widgets à afficher dans la cellule appropriée.
En second lieu, l'utilisation horizontalHeader()
pour accéder à la QHeaderView
pour le QTableView
, puis définissez le ResizeMode
en conséquence.
QTableWidget* table = new QTableWidget( this );
table->setColumnCount( 2 );
table->setRowCount( 1 );
table->setCellWidget ( 0, 0, new QComboBox( table ) );
table->setCellWidget ( 0, 1, new QSpinBox( table ) );
table->horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch );
table->horizontalHeader()->setResizeMode( 1, QHeaderView::ResizeToContents );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow