Estoy empezando a jugar con PyQt luego de ver un rato de la charla de
Roberto Alsina en La Tribu (la primera).
Como para meterme en tema quise hacer una versión en python de
Tasque[0]. Para los que no lo conozcan, Tasque es una aplicación muy
sencilla para manejar listas de pendientes (to-do lists) que tiene la
virtud de estar integrado a Remember the Milk [1]. A nivel interfaz
gráfica y funcionalidad me gusta porque es muy sencilla y práctica,
pero funciona bastante mal y está hecha en C#, así que quería hacer
una versión en Python (por lo menos para aprender PyQt).
El problema que tengo es que no sé qué widgets me convendría usar para
generar el listado de pendientes. Me gustaría que fuera como el de
Tasque [2].
Inicialmente lo creé con un QListWidget, pero así no sé cómo podría
hacer para que cuando hacés click, por ejemplo, en la fecha, te
convierta el campo en un ComboBox que te permita elegir la que querés.
Tampoco sabría cómo agregar el checkbox para marcar la tarea como
realizada.
O me conviene usar tablas y agrear una fila para cada item?
Qué me recomiendan?
Saludos,
A
[0] http://live.gnome.org/Tasque
[1] http://www.rememberthemilk.com/
[2] http://live.gnome.org/Tasque/Screenshots
_______________________________________________
pyar mailing list py...@python.org.ar
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
Hola Andrés!
Tal vez estos links te ayuden:
http://lateral.netmanagers.com.ar/stories/BBS47.html
http://nomuerde.netmanagers.com.ar/6.html
Disculpa que no pueda ser de mucha mayor ayuda.. :(
Éxtos con eso! seguro te va a encantar PyQt!
--
Ramiro Algozino
http://doc.qt.nokia.com/4.7-snapshot/model-view-programming.html
Puede ser un poco largo para leer por ahí, pero no tiene desperdicio.
2011/1/11 Andrés Gattinoni <andresg...@gmail.com>:
--
Diego Sarmentero
Blog: http://diegosarmentero.com.ar
Twitter: http://twitter.com/diegosarmentero
Es probable que termines cayendo en un QTreeView, que te va a llevar a
definir modelos y esas cosas.
Si es posible, yo trataria de lograrlo con un QTreeWidget.
> Inicialmente lo creé con un QListWidget, pero así no sé cómo podría
> hacer para que cuando hacés click, por ejemplo, en la fecha, te
> convierta el campo en un ComboBox que te permita elegir la que querés.
> Tampoco sabría cómo agregar el checkbox para marcar la tarea como
> realizada.
Con QListWidget, podes agregar el checkbox usando
QListWidgetItem.checkState y setFlags() y aledaños. En Un QTreeWidget,
usando los métodos de QTreeWidgetItem.
En cuanto a usar un ComboBox para editarlo:
1) Podes simplemente pescar cuando el usuario hace el click y mostrar el
combo
2) Podes usar QItemDelegate, pero eso te obliga a usar QTreeView y modelos.
> O me conviene usar tablas y agrear una fila para cada item?
Yo normalmente hago las "tablas" de este tipo usando QTreeView/QTreeWidget
Aunque parece que es posible usar QItemDelegate con QTreeWidget usando
setItemDelegate y amigos con QTreeWidget ( siempre se aprende algo nuevo :-)
Gracias. Estuve mirando un poco los posts de Roberto de PyQt by
Example y me sirvieron bastante.
Creo que yendo por ese camino puedo lograr lo que quiero de forma
bastante sencilla.
Lo de modelos y vistas también lo voy a mirar, pero quizás deje su
implementación para más adelante.
Una cosa que me encontré probando QTreeWidget siguiendo el ejemplo de Roberto.
En el ejemplo se agregan items así:
item=QtGui.QTreeWidgetItem([task.text,str(task.date),tags])
Lo probé y me tiraba una excepción diciendo que estaba mal el tipo de
dato, que esperaba un QStringList. Supongo que tiene que ver con la
versión de PyQt (el ejemplo de Roberto, según dice, está pensado para
PyQt 4.4 y yo tengo PyQt 4.7.4).
Me terminó funcionando haciendo esto:
data = QtCore.QStringList()
data.append(task.description)
data.append("")
item = QtGui.QTreeWidgetItem(data)
Hay forma de hacerlo más lindo (léase, en menos de 4 líneas)?