• Viernes 29 de Marzo de 2024, 14:19

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jp_lujan

Páginas: [1]
1
Python / Llenar un Entry con variable
« en: Lunes 6 de Septiembre de 2010, 14:57 »
Hola bastante novato en python, estoy intentando hacer un interface con TK.

El codigo que os dejo intenta hacer lo siguiente:
Cuando carga la ventana los Entry se llenan con valores de las propiedades de un fichero, esto funciona sin problemas.

Estas propedades yo las cambio en los entry y cuando doy al boton debería actualizar los valores de todos los entry al fichero, el problema que tengo esque no se como actualizar los valores de los entry, ya que cuando doy al boton me pierde los valores.

Codigo:

Código: Python
  1.  
  2. #!/usr/bin/env python
  3. #_*_ coding: utf-8 _*_
  4. #file: Propiedades_Tk1.py
  5. #Propiedades
  6.  
  7. import Tkinter
  8. import win32com.client
  9. from win32com.client import gencache
  10. oApp = win32com.client.Dispatch('Inventor.Application')
  11. oApp.Visible = True
  12. mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}',0,1,0)
  13. oApp = mod.Application(oApp)
  14. oApp.SilentOperation = True
  15. oDoc = oApp.ActiveDocument
  16. prop = oApp.ActiveDocument.PropertySets.Item("Design Tracking Properties")
  17. Descrip = prop('Description').Value
  18. Disenador = prop('Designer').Value
  19.  
  20. class Inventor_tk(Tkinter.Tk):
  21.    
  22.      def __init__(self,parent):
  23.         Tkinter.Tk.__init__(self,parent)
  24.         self.parent = parent
  25.         self.initialize()
  26.  
  27.      def initialize(self):
  28.         self.grid()
  29.        
  30.         #Boton actulizar propiedades
  31.         button = Tkinter.Button(self, text= u"Nueva Pieza", command=self.UpdatePropiedad)
  32.         button.grid(column=4, row=5)
  33.  
  34.         #Descripcion        
  35.         labelDescrip = Tkinter.Label(self, text= "Descripcion: ")
  36.         labelDescrip.grid(column=1, row=2)
  37.         labelDescrip.grid(column=1, row= 2,sticky='W'+'E')
  38.  
  39.         DescripEntry = Tkinter.StringVar()
  40.         DescripEntry.set (Descrip)
  41.                        
  42.  
  43.         EntryDescrip = Tkinter.Entry(self, textvariable=DescripEntry)
  44.         #EntryDescrip.bind("<Return>", self.UpdatePropiedad)
  45.         EntryDescrip.grid(column=2,  row= 2,sticky='W'+'E')
  46.  
  47.         global NuevaDesc
  48.         NuevaDesc = EntryDescrip.get()
  49.  
  50.         #Diseñador        
  51.         labelDesing = Tkinter.Label(self, text= u"Diseñador: ")
  52.         labelDesing.grid(column=1, row=3)
  53.         labelDesing.grid(column=1, row= 3,sticky='W'+'E')
  54.        
  55.         DesingEntry = Tkinter.StringVar()
  56.         DesingEntry.set (Disenador)
  57.        
  58.         EntryDesign = Tkinter.Entry(self, textvariable=DesingEntry)
  59.         #EntryDesign.bind("<Return>", self.UpdatePropiedad)
  60.         EntryDesign.grid(column=2,  row= 3,sticky='W'+'E')
  61.        
  62.  
  63.         global NuevoDiseno
  64.         NuevoDiseno = EntryDesign.get()
  65.  
  66.                
  67.      def UpdatePropiedad(self):
  68.         ###
  69.         ###Fallo pierde valor de las variables, intentar corregir
  70.         ###
  71.        
  72.         Descrip = prop ('Description').Value = NuevaDesc
  73.         Disenador = prop ('Designer').Value = NuevoDiseno
  74.         print Descrip
  75.         print Disenador
  76.         #Actualiza documento
  77.         oDoc.Update
  78.        
  79. if __name__ == "__main__":
  80.     app = Inventor_tk(None)
  81.     app.title('Propiedades de: '+ oApp.ActiveDocument.DisplayName)
  82.     app.mainloop()
  83.  
  84.  

Gracias por vuestra ayuda.

2
Python / Re: Caracteres acentuados
« en: Viernes 6 de Agosto de 2010, 08:11 »
Zyntaxis:
Lo del codigo fue tan sencillo como copiar y pegar el texto, previamente he seleccionado Code=Python en el cuadro de enviar post y he pegado el texto entre los
[ code=python]****pegar texto aquí****[/code ].

Rive08:
Gracias por tu respuesta pero no sé como decodificar la cadena.
Seguiré intentando, de nuevo gracias

3
Python / Re: Caracteres acentuados
« en: Miércoles 4 de Agosto de 2010, 08:14 »
No entiendo lo que quieres decir

4
Python / Caracteres acentuados
« en: Martes 3 de Agosto de 2010, 08:47 »
Hola, soy bastante novato en python, necesitaría de ayuda con la siguiente cuestión tengo una tabla en la que en una de las celdas me aparece el Path de un fichero, el programa funciona bién hasta que en ese path aparece un carácter acentuado ya sea mayúscula o minúscula. he puesto el coding en la cabecera pero me sigue sin funcionar.

Dejo el código por si alguien pudiera ayudarme
Código: Python
  1.  
  2. #!/usr/local/bin/python
  3. # -*- coding: utf-8 -*-
  4. import sys
  5. import os
  6. from PyQt4 import QtCore
  7. from PyQt4 import QtGui
  8. from PyQt4 import QtSql
  9. from gui import Ui_MainWindow
  10. class Programa(QtGui.QMainWindow):
  11.     def __init__(self,parent=None):
  12.         QtGui.QWidget.__init__(self,parent)
  13.  
  14.         self.modelo = self.generaModelo()
  15.  
  16.         self.ui = Ui_MainWindow()
  17.         self.ui.setupUi(self)
  18.         self.ui.tabla.setModel(self.modelo)
  19.         self.reajusta()
  20.  
  21.         QtCore.QObject.connect(self.ui.action_Salir, QtCore.SIGNAL("activated()"),QtGui.qApp,QtCore.SLOT("quit()") )
  22.         QtCore.QObject.connect(self.ui.Refrescar, QtCore.SIGNAL("clicked()"),self.refrescar)
  23.  
  24.         QtCore.QObject.connect(self.ui.Nuevalinea, QtCore.SIGNAL("clicked()"),self.nuevaLinea)
  25.  
  26.         QtCore.QObject.connect(self.ui.eliminarLinea, QtCore.SIGNAL("clicked()"),self.eliminarLinea)
  27.         QtCore.QObject.connect(self.ui.abrirDoc, QtCore.SIGNAL("clicked()"),self.abrirDoc)
  28.  
  29.     def generaModelo(self):
  30.          self.conectaDB()
  31.          modelo = QtSql.QSqlTableModel(None,self.db)
  32.          modelo.setTable('accesos')
  33.          modelo.setSort(self.recordPrototipo.indexOf('idAcceso'),
  34.                         QtCore.Qt.AscendingOrder)
  35.          modelo.select()
  36.          return modelo
  37.  
  38.     def conectaDB(self):
  39.          self.db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
  40.          self.db.setHostName('')
  41.          self.db.setDatabaseName('Accesos2.db')
  42.          self.db.setUserName('')
  43.          self.db.setPassword('')
  44.          name = self.db.open()
  45.          query = QtSql.QSqlQuery('select * from accesos',self.db)
  46.          self.recordPrototipo = query.record()
  47.  
  48.     def reajusta(self):
  49.          self.ui.tabla.resizeColumnsToContents()
  50.  
  51.     def nuevaLinea(self):
  52.          fila = self.modelo.rowCount()
  53.          self.modelo.insertRow(fila)
  54.          self.reajusta()
  55.  
  56.  
  57.     def eliminarLinea(self):
  58.         index = self.ui.tabla.currentIndex()
  59.         fila = index.row()
  60.         id = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf('idAcceso'))).toString()
  61.         nombre = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf('Ruta'))).toString()
  62.  
  63.         if QtGui.QMessageBox.question(self, 'Borrar linea',
  64.         QtCore.QString("¿Desea borrar el producto #%1, #%2?").arg(idAcceso).arg(Ruta),
  65.         QtGui.QMessageBox.Yes|QtGui.QMessageBox.No) == QtGui.QMessageBox.Yes:
  66.                self.modelo.removeRow(fila)
  67.                self.reajusta()
  68.     def refrescar(self):
  69.         self.modelo.select()
  70.  
  71.     def abrirDoc(self):
  72.         index = self.ui.tabla.currentIndex()
  73.         fila = index.row()
  74.  
  75. ## La línea donde tiene recogido el PATH, tambien he probado a poner 'u' delante de la cadena
  76.         nombre = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf ('Ruta'))).toString ()
  77.  
  78.         os.startfile (nombre)
  79.  
  80. if __name__ == '__main__':
  81.     app = QtGui.QApplication (sys.argv)
  82.     myapp = Programa()
  83.     myapp.show()
  84.     sys.exit(app.exec_())
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  

5
Python / Re: Cargar una tabla de sqlite en una 2d table
« en: Jueves 24 de Septiembre de 2009, 08:31 »
Muchas gracias Edo por tu ayuda, ahora lo que estoy intentado es hacer una grid de Label y que en cada Label me aparezca un campo de la tabla

Código: Python
  1.  
  2. #crear cursor
  3. cursor = cnn.cursor()
  4. cursor.execute('SELECT * FROM User')
  5. row = cursor
  6.  
  7. #Obtengo lista con las filas
  8. filas = cursor.fetchall()
  9. #obtengo longitud de la lista filas
  10. contFilas = len(filas)
  11.  
  12. #Obtengo lista con la descripcion de las columnas
  13. desColumna = [col[0] for col in cursor.description]
  14. #Obtengo longitud de la lista desColumna
  15. contColumna = len(desColumna)
  16.  
  17.  
  18.  
  19.  
  20. #for row in cursor:
  21. for i in range(contFilas):
  22.     for j in range(contColumna):
  23.         l = Label(text= filas[2], relief=SUNKEN )
  24.         l.grid(row=i, column=j, sticky=NSEW)
  25.  
  26.  

6
Python / Cargar una tabla de sqlite en una 2d table
« en: Lunes 14 de Septiembre de 2009, 15:15 »
Hola:

Soy nuevo en esto de python me dedico al mundo del diseño grafico en 3D, anteriormente había realizado algo de programación en VBA y .NET.

La duda es la siguiente: en el codigo que os presento mas abajo me gustaría poder presentar en una 2d table o un listbox de Tkinter (no sé cual seria la mejor opción) el contenido de la table ya sea al carga el programa o mediante un boton

El codigo:

Código: Python
  1. from Tkinter import *
  2.  
  3. import sqlite3
  4.  
  5. root =Tk ()
  6.  
  7.  
  8. #Creo la BD
  9.  
  10. connection = sqlite3.connect ('Test2.db')
  11. cursor = connection.cursor()
  12.  
  13. cursor.execute('CREATE TABLE User (id INTEGER PRIMARY KEY, nombre TEXT, edad NUMERIC, correo TEXT, url TEXT,visitas NUMERIC)')
  14.  
  15. connection.commit()
  16. cursor.close()
  17. connection.close>()
  18.  
  19.  
  20.  
  21. #Inserto Datos
  22.  
  23. #crear cursor
  24. cursor = connection.cursor()
  25.  
  26. datos=[
  27.     ('Pedro Perez', 34, 'maria@sucorreo.com', '' ,7),
  28.       ('Pablo Rodriguez', 41, for t in datos:
  29.      cursor.execute('INSERT INTO User (nombre,edad,correo,url,visitas) values (?,?,?,?,?)',t)
  30.  
  31. #mandamos cambio a bd
  32. connection.commit()
  33.  
  34. ###DUDA presentacion de los registros en una 2d Table o en un Listbox ########
  35.  
  36.  
  37.  
  38. print "n Lista de todos los registro de la base de datos: "
  39. cursor.execute('SELECT * FROM User')
  40. for row in cursor:
  41.      print row
  42.      
  43.  
  44. for row1 in cursor:
  45.     l=Label(text=row1, relief=RIDGE)
  46.     l.grid(row=5, column=1)
  47.                        
  48.  
  49.  
  50. ######################################################################3
  51.  
  52. #cierre de cursor y bd
  53. cursor.close()
  54. connection.close()
  55.  
  56. if __name__ =='__main__':
  57.     print "Acabado"
  58.    
  59. root.mainloop()
  60.  
  61.  


Un saludo y os agradezo la atención que me prestais
Gracias

Páginas: [1]