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).

Était-ce utile?

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
scroll top