|
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
« 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: #!/usr/bin/env python #_*_ coding: utf-8 _*_ #file: Propiedades_Tk1.py #Propiedades import Tkinter import win32com.client from win32com.client import gencache oApp = win32com.client.Dispatch('Inventor.Application') oApp.Visible = True mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}',0,1,0) oApp = mod.Application(oApp) oApp.SilentOperation = True oDoc = oApp.ActiveDocument prop = oApp.ActiveDocument.PropertySets.Item("Design Tracking Properties") Descrip = prop('Description').Value Disenador = prop('Designer').Value class Inventor_tk(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.parent = parent self.initialize() def initialize(self): self.grid() #Boton actulizar propiedades button = Tkinter.Button(self, text= u"Nueva Pieza", command=self.UpdatePropiedad) button.grid(column=4, row=5) #Descripcion labelDescrip = Tkinter.Label(self, text= "Descripcion: ") labelDescrip.grid(column=1, row=2) labelDescrip.grid(column=1, row= 2,sticky='W'+'E') DescripEntry = Tkinter.StringVar() DescripEntry.set (Descrip) EntryDescrip = Tkinter.Entry(self, textvariable=DescripEntry) #EntryDescrip.bind("<Return>", self.UpdatePropiedad) EntryDescrip.grid(column=2, row= 2,sticky='W'+'E') global NuevaDesc NuevaDesc = EntryDescrip.get() #Diseñador labelDesing = Tkinter.Label(self, text= u"Diseñador: ") labelDesing.grid(column=1, row=3) labelDesing.grid(column=1, row= 3,sticky='W'+'E') DesingEntry = Tkinter.StringVar() DesingEntry.set (Disenador) EntryDesign = Tkinter.Entry(self, textvariable=DesingEntry) #EntryDesign.bind("<Return>", self.UpdatePropiedad) EntryDesign.grid(column=2, row= 3,sticky='W'+'E') global NuevoDiseno NuevoDiseno = EntryDesign.get() def UpdatePropiedad(self): ### ###Fallo pierde valor de las variables, intentar corregir ### Descrip = prop ('Description').Value = NuevaDesc Disenador = prop ('Designer').Value = NuevoDiseno print Descrip print Disenador #Actualiza documento oDoc.Update if __name__ == "__main__": app = Inventor_tk(None) app.title('Propiedades de: '+ oApp.ActiveDocument.DisplayName) app.mainloop()
Gracias por vuestra ayuda.
2
« 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
« en: Miércoles 4 de Agosto de 2010, 08:14 »
No entiendo lo que quieres decir
4
« 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 #!/usr/local/bin/python # -*- coding: utf-8 -*- import sys import os from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4 import QtSql from gui import Ui_MainWindow class Programa(QtGui.QMainWindow): def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) self.modelo = self.generaModelo() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.tabla.setModel(self.modelo) self.reajusta() QtCore.QObject.connect(self.ui.action_Salir, QtCore.SIGNAL("activated()"),QtGui.qApp,QtCore.SLOT("quit()") ) QtCore.QObject.connect(self.ui.Refrescar, QtCore.SIGNAL("clicked()"),self.refrescar) QtCore.QObject.connect(self.ui.Nuevalinea, QtCore.SIGNAL("clicked()"),self.nuevaLinea) QtCore.QObject.connect(self.ui.eliminarLinea, QtCore.SIGNAL("clicked()"),self.eliminarLinea) QtCore.QObject.connect(self.ui.abrirDoc, QtCore.SIGNAL("clicked()"),self.abrirDoc) def generaModelo(self): self.conectaDB() modelo = QtSql.QSqlTableModel(None,self.db) modelo.setTable('accesos') modelo.setSort(self.recordPrototipo.indexOf('idAcceso'), QtCore.Qt.AscendingOrder) modelo.select() return modelo def conectaDB(self): self.db = QtSql.QSqlDatabase.addDatabase('QSQLITE') self.db.setHostName('') self.db.setDatabaseName('Accesos2.db') self.db.setUserName('') self.db.setPassword('') name = self.db.open() query = QtSql.QSqlQuery('select * from accesos',self.db) self.recordPrototipo = query.record() def reajusta(self): self.ui.tabla.resizeColumnsToContents() def nuevaLinea(self): fila = self.modelo.rowCount() self.modelo.insertRow(fila) self.reajusta() def eliminarLinea(self): index = self.ui.tabla.currentIndex() fila = index.row() id = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf('idAcceso'))).toString() nombre = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf('Ruta'))).toString() if QtGui.QMessageBox.question(self, 'Borrar linea', QtCore.QString("¿Desea borrar el producto #%1, #%2?").arg(idAcceso).arg(Ruta), QtGui.QMessageBox.Yes|QtGui.QMessageBox.No) == QtGui.QMessageBox.Yes: self.modelo.removeRow(fila) self.reajusta() def refrescar(self): self.modelo.select() def abrirDoc(self): index = self.ui.tabla.currentIndex() fila = index.row() ## La línea donde tiene recogido el PATH, tambien he probado a poner 'u' delante de la cadena nombre = self.modelo.data(self.modelo.index(fila, self.recordPrototipo.indexOf ('Ruta'))).toString () os.startfile (nombre) if __name__ == '__main__': app = QtGui.QApplication (sys.argv) myapp = Programa() myapp.show() sys.exit(app.exec_())
5
« 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 #crear cursor cursor = cnn.cursor() cursor.execute('SELECT * FROM User') row = cursor #Obtengo lista con las filas filas = cursor.fetchall() #obtengo longitud de la lista filas contFilas = len(filas) #Obtengo lista con la descripcion de las columnas desColumna = [col[0] for col in cursor.description] #Obtengo longitud de la lista desColumna contColumna = len(desColumna) #for row in cursor: for i in range(contFilas): for j in range(contColumna): l = Label(text= filas[2], relief=SUNKEN ) l.grid(row=i, column=j, sticky=NSEW)
6
« 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: from Tkinter import * import sqlite3 root =Tk () #Creo la BD connection = sqlite3.connect ('Test2.db') cursor = connection.cursor() cursor.execute('CREATE TABLE User (id INTEGER PRIMARY KEY, nombre TEXT, edad NUMERIC, correo TEXT, url TEXT,visitas NUMERIC)') connection.commit() cursor.close() connection.close>() #Inserto Datos #crear cursor cursor = connection.cursor() datos=[ ('Pedro Perez', 34, 'maria@sucorreo.com', '' ,7), ('Pablo Rodriguez', 41, for t in datos: cursor.execute('INSERT INTO User (nombre,edad,correo,url,visitas) values (?,?,?,?,?)',t) #mandamos cambio a bd connection.commit() ###DUDA presentacion de los registros en una 2d Table o en un Listbox ######## print "n Lista de todos los registro de la base de datos: " cursor.execute('SELECT * FROM User') for row in cursor: print row for row1 in cursor: l=Label(text=row1, relief=RIDGE) l.grid(row=5, column=1) ######################################################################3 #cierre de cursor y bd cursor.close() connection.close() if __name__ =='__main__': print "Acabado" root.mainloop()
Un saludo y os agradezo la atención que me prestais Gracias
Páginas: [1]
|
|
|