Domanda

Come creare un widget QTable che ha 2 columnes, e nella prima colonna c'è un QComboBox e nella seconda colonna v'è una QSpinBox in modo che la casella combinata ottiene tutto lo spazio del tavolo e solo un posto molto piccolo foglie per QSpinBox (per 2-3 cifre).

È stato utile?

Soluzione

In primo luogo, utilizzare setCellWidget() per impostare la QComboBox e QSpinBox come i widget da visualizzare nella cella appropriata.

In secondo luogo, l'uso horizontalHeader() per l'accesso alla QHeaderView per la QTableView , quindi impostare il ResizeMode di conseguenza.

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 );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top