Bonjour à tous,
J'ai un QComboBox qui me permet de choisir un numéro de compte comptable.
Lorsque je clique sur le combobox j'ai mes données sur deux colonnes qui apparaissent (à l'aide d'un QTableView).
Je joins une capture d'écran
Voici mon code :
et le code de la classe MyTableModel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 for row in zip(self.dfComptes['NumeroComptable'], self.dfComptes['Libelle']): sousElement = [] sousElement.append(row[0]) sousElement.append(row[1]) dataTable.append(sousElement) self.tableModelComptes = MyTableModel(dataTable, self) self.cboxTableCompte = QTableView(self) self.cbCompteMasque.setView(self.cboxTableCompte) self.cbCompteMasque.setModel(self.tableModelComptes)
Les données proviennent d'un data frame Pandas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 # création du modèle pour la combobox à plusieurs colonnes class MyTableModel(QAbstractTableModel): def __init__(self, datain, parent=None, *args): QAbstractTableModel.__init__(self, parent, *args) self.arraydata = datain def rowCount(self, parent): return len(self.arraydata) def columnCount(self, parent): return len(self.arraydata[0]) def data(self, index, role): if not index.isValid(): return QVariant() elif role != Qt.DisplayRole: return QVariant() return QVariant(self.arraydata[index.row()][index.column()])
Les deux colonnes qui s'affichent correspondent au numéro comptable et au libellé du compte comptable.
Voilà ma question :
Puis je obtenir une table qui dépasse la largeur de mon combobox ?
En effet, dans mon cas la largeur de mes colonnes est insuffisante.
L'idéal serait cela (montage en image) :
Merci d'avance pour votre aide.
Partager