Perché Qt aggiungere più di tre colonne quando uso restoreState () su un QTableWidget?

StackOverflow https://stackoverflow.com/questions/915352

  •  06-09-2019
  •  | 
  •  

Domanda

Il mio codice è in qualche modo simile al seguente:

table = QTableWidget()
table.horizontalHeader().restoreState(settings.value("savedState"))
table.setColumnCount(3)

settings.setValue("savedState", table.horizontalHeader().saveState())

Se l'eseguo la prima volta che ci sono solo 3 intestazioni di colonna. La seconda volta ci sono 6 e la terza 9 ... La cosa strana è table.columnCount() è sempre 3. Se rimuovo table.setColumnCount(3) non ci sono colonne a tutti.

Perché succede questo ed è un bug o intenzionale?

UPDATE

L'aggiunta di table.clearContents() prima table.setColumnCount(3) ha reso il lavoro. Continuo a pensare che sia un bug.

È stato utile?

Soluzione

Quali piattaforma e che versione Qt è questo? http://chaos.troll.no/~hhartz/tablecolumns.tar sembra funzionare bene che utilizza l'ultimo Qt 4.5

Altri suggerimenti

Che cosa succede con?

table = QTableWidget();
table.setColumnCount(3);
table.horizontalHeader().restoreState(settings.value("savedState"));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top