Error con PyQt4

Yusniel Hidalgo Delgado yhdelgado en estudiantes.uci.cu
Mar Mar 18 05:27:46 CET 2008


Saludos amigos. Me he encontrado un pedazo de código que resuelve parte de mi problema. O sea, lo que quiero es mostrar una estructura de directorios utilizando un arbol, algo asi como un QTreeWidget. Por lo pronto, lo he estado probando con un QListViewItem que me encontré en un manual. Resulta que cuando trato de poner el arbol en mi ventana principal, este me lance un error diciendo: RuntimeError: the qt and PyQt4.QtCore modules both wrap the QObject class

Adjunto el código del Tree y el código de la ventana Princiapl.
import sys
from qt import *

class DirectoryTree(QListViewItem):
  def __init__(self, parent, name=None):
    QListViewItem.__init__,(self,parent)
    if isinstance(parent, QListViewItem):
      self.p = None
      self.f = '/var/www/prueba/'
    else:
      self.p = parent
      self.f = name
    self.c = []
    self.readable = 1


  def setOpen(self, o):
    if o and not self.childCount():
      s = self.fullName()

      if (not os.path.isdir(s)):
        self.readable == 0
        return

      if (not os.access(s, os.F_OK or os.R_OK)):
        self.readable == 0
        return

      files=os.listdir(s)
      if files:
        for fileName in files:
          f=os.path.join(s, fileName)
          if fileName == "." or fileName == "..":
            continue
          elif os.path.islink(f):
            d = QListViewItem(self, fileName, 'Symbolic Link')
          elif os.path.isdir(f):
            d = Directory(self, fileName)
          else:

            if os.path.isfile(f):
              t = 'File'
            else:
              print f
              t = 'Special'
            d = QListViewItem(self, fileName, t)
          self.c.append(d)

    QListViewItem.setOpen(self, o)

  def setup(self):
    self.setExpandable(1)
    QListViewItem.setup(self)

  def fullName(self):
    if self.p:
      s = self.p.fullName() + self.f + '/'
    else:
      s = '/var/www/prueba/'
    return s

  def text(self, column):
    if column == 0:
      return self.f
    elif self.readable:
      return 'Directory'
    else:
      return 'Unreadable Directory'

Este es el codigo del arbol, cuando lo mando a correr me pincha todo ok, pero cuando lo llamo desde mi ventana principal, me da el error mencionado arriba.
Este es el codigo en la ventana generada por Qt4-Designer:
       
        self.listV=QListView(self.tab)
        self.treePrpj=DirectoryTree(self.listV)
        self.treePrpj.setOpen(1)
        self.listV.show()

y este es el codigo de la clase que llama al visual:

import sys
from PyQt4 import QtCore,QtGui
class PySfGui(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self,parent)
        from main import Ui_MainWindow
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        self.imprimir()
    #QtCore.QObject.connect(self.ui.textEdit,QtCore.SIGNAL("clicked()"),self.imprimir())
    
    def imprimir(self):
        self.ui.textEdit.setPlainText("Este es el texto")

if __name__=="__main__":
    app=QtGui.QApplication(sys.argv)
    myapp=PySfGui()
    myapp.show()
    SystemExit(app.exec_())

Disculpen la magnitud del correo, pero es que ya no hayo que hacer, no entiendo que pueda ser, supongo que sea incompatibilidad entre las librerias QT y PyQT4. Saludos a todos.


------------------------------------------------------------
Yusniel Hidalgo Delgado
Brigada 4301
Universidad de las Ciencias Informáticas
------------------------------------------------------------
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es