Portál AbcLinuxu, 1. června 2025 21:55


Dotaz: Cyklus for prepisusej itemy v QListView

Vojta Drbohlav avatar 24.4.2006 19:11 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Cyklus for prepisusej itemy v QListView
Přečteno: 232×
Odpovědět | Admin
Ahoj, kdyz v Pythonu(resp. PyQt) provedu tohle:
UDIs = str(commands.getoutput("hal-find-by-capability --capability storage.cdrom")).split("\n")
info=QListViewItem()

for UDI in UDIs:
  NAM = commands.getoutput("hal-get-property --udi "+UDI+" --key info.product")
  DEV = commands.getoutput("hal-get-property --udi "+UDI+" --key block.device")
  info.setText(0, NAM)
  info.setText(1, DEV)
A maji se pridat 2(s vice jsem to nezkousel) polozky do lst_info(cyklus probehne 2krat), tak vzdycky polozka, ktera se pridava jako druha prepise tu co tam uz je. :-(

Neznate nekdo jinej zpusob jak pridavat polozky do QListView? Nebo alespon jak tohle upravit aby se to navzajem neprepisovalo? Dik Vojta
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Blackhex avatar 25.4.2006 01:42 Blackhex | skóre: 16 | Brno, Frýdek-Místek
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevim jestli je to co potrebujete ale tohle mi funguje:
#!/bin/env python

from qt import *

app = QApplication([])
win = QMainWindow()

list = QListView(win)
list.addColumn ("test")
for text in ["polozka1", "polozka2"]:
  list.insertItem(QListViewItem(list, text))
list.adjustSize()
win.show()

app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
app.exec_loop()
المفتاح المستعمل ﻻ يصدأ
Vojta Drbohlav avatar 25.4.2006 08:25 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Dik, ale co kdyz budu mit vic sloupecku?

Sraci tohle list.insertItem(QListViewItem(list, text1, text2)) ? Vojta
Blackhex avatar 25.4.2006 10:59 Blackhex | skóre: 16 | Brno, Frýdek-Místek
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Jo, stačí:
#!/bin/env python

from qt import *

app = QApplication([])
win = QMainWindow()

list = QListView(win)
list.addColumn("test")
list.addColumn("test2")
for text in [("polozka1", "hodnota1"), ("polozka2", "hodntota2")]:
  list.insertItem(QListViewItem(list, text[0], text[1]))
list.adjustSize()
win.show()

app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
app.exec_loop()
المفتاح المستعمل ﻻ يصدأ
Vojta Drbohlav avatar 25.4.2006 11:58 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Dik, ted jsem ve skole na Widlich, ale az se dostanu domu tak to vyzkousim. ;-) Vojta
Vojta Drbohlav avatar 25.4.2006 15:56 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
DIKY, uz mi to jde. Vojta :-D
Vojta Drbohlav avatar 25.4.2006 17:11 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ted kdyz QListView vypada asi takhle:
Sloupec 1     Sloupec 2     Sloupec 3

polozka1      parametr1     x1
polozka2      parametr2     x2
Jak vyberu parametr ze sloupce 2 na oznacenem radku? Vojta
Blackhex avatar 25.4.2006 22:36 Blackhex | skóre: 16 | Brno, Frýdek-Místek
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Tohle jsem už nezkoušel, ale něco jako
list_view.currentItem().text(1)
Doporučil bych Vám naučit se používat oficiální dokumentaci Qt http://doc.trolltech.com/3.3/qlistview.html. Osobně jsem v PyQt doposud nic nedělal a všechno jsem vyčetl odtamtud.
المفتاح المستعمل ﻻ يصدأ
Vojta Drbohlav avatar 26.4.2006 12:21 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Doporučil bych Vám naučit se používat oficiální dokumentaci Qt http://doc.trolltech.com/3.3/qlistview.html. Osobně jsem v PyQt doposud nic nedělal a všechno jsem vyčetl odtamtud.
O dokumentaci vim, ale moc se v ni nevyznam, moc toho z ni nevyctu ;-). Vojta
Vojta Drbohlav avatar 8.5.2006 18:55 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Mě to nefunguje vypíše tohle:
Traceback (most recent call last):
  File "/home/data/programming/python/kddvd/kddvd.py", line 116, in createISO
    print self.lst_info.currentItem().text(1)
AttributeError: 'NoneType' object has no attribute 'text'
Nevíte někdo jak na to?
Blackhex avatar 13.8.2006 22:59 Blackhex | skóre: 16 | Brno, Frýdek-Místek
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Pravděpodobně situace, kdy není nic označeno, bylo by dobré to nejdříve otestovat na None.
المفتاح المستعمل ﻻ يصدأ
Vojta Drbohlav avatar 14.8.2006 10:27 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Vysvetli mi to trosku, jak to mam otestovat na None?
Pavel Stárek avatar 14.8.2006 13:11 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Třeba:
if (self.lst_info.currentItem() <> None):
    #neni None
  print self.lst_info.currentItem().text(1)
else:
    #je None
  pass
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Vojta Drbohlav avatar 14.8.2006 13:37 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Aha, špatně sem to pochopil ;-).

Dík tohle už funguje
Vojta Drbohlav avatar 15.8.2006 23:04 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Cyklus for prepisusej itemy v QListView
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokoušim se o přesouvání itemů nahoru a dolu v QListView. Nahoru mi to nejde :-(, ale dolu jo.

Nahoru:
sel = self.lst_list.selectedItem()
sel.moveItem(sel.itemAbove())
Dolu:
sel = self.lst_list.selectedItem()
sel.moveItem(sel.itemBelow())
Nevíte proč to nahoru nejde a dolu jo? Dík Vojta

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.