16/11/12 17:08
TheTux94
Buongiorno,
ho da poco iniziare a studiare Python e ora sto cercando di fare un programma con una GUI utilizzando le librerie PyQT.
Ecco il mio problema:
Ho una Scrollarea dove ci metto dentro un widget che contiene un qgridlayout:
Dopodiché ci aggiungo 100 QLabel così tanto per aggiungerci qualcosa (praticamente uso il gridlayout come vertical layout per ora, ma successivamente lo userò come tabella):
Poi ho creato un bottone che, quando cliccato, richiama la funzione "nomefunzione", sto cercando di fare qualcosa che cancelli una riga qualsiasi del gridlayout. Per ora ho scritto questo codice:
Il codice sembra funzionare, nel senso che sposta tutti gli elementi sopra di una riga (la riga i+1 diventa riga i), tuttavia non cancella la scritta "Numero 1" presente nella prima riga (la riga 0).
Come posso risolvere questo problema?
Grazie in anticipo, Davide
ho da poco iniziare a studiare Python e ora sto cercando di fare un programma con una GUI utilizzando le librerie PyQT.
Ecco il mio problema:
Ho una Scrollarea dove ci metto dentro un widget che contiene un qgridlayout:
sa = QtGui.QScrollArea() sa_widget = QtGui.QWidget() self.sa_grid.setSizeConstraint(QtGui.QLayout.SetMinAndMaxSize) sa_widget.setLayout(self.sa_grid) sa.setWidgetResizable(True) sa.setWidget(sa_widget)
Dopodiché ci aggiungo 100 QLabel così tanto per aggiungerci qualcosa (praticamente uso il gridlayout come vertical layout per ora, ma successivamente lo userò come tabella):
# CONTENUTO SCROLLAREA i = 0 while i<100: i = i +1 add = QtGui.QLabel("Numero %i" % i) self.sa_grid.addWidget(add)
Poi ho creato un bottone che, quando cliccato, richiama la funzione "nomefunzione", sto cercando di fare qualcosa che cancelli una riga qualsiasi del gridlayout. Per ora ho scritto questo codice:
tmp = QtGui.QWidget() tmp = self.sa_grid.itemAt(0) self.sa_grid.removeItem(tmp)
Il codice sembra funzionare, nel senso che sposta tutti gli elementi sopra di una riga (la riga i+1 diventa riga i), tuttavia non cancella la scritta "Numero 1" presente nella prima riga (la riga 0).
Come posso risolvere questo problema?
Grazie in anticipo, Davide
aaa