[pyar] pyqt conexión con funciones importadas

Alexis Waisman alexis.waisman en gmail.com
Mar Oct 1 09:10:27 -03 2019


Cristian, Disculpa el anterior mensaje lo envíe incompleto  sin querer...
me parece que el problema esta en que cerras el archivo dentro del loop.
Cada vez que recorres un submodulo estas leyendo solo la primer linea del
archivo 'cfg'.
¿Probaste abrir el archivo y cerrarlo fuera del for?
Saludos.-

El mar., 1 oct. 2019 a las 9:07, Alexis Waisman (<alexis.waisman en gmail.com>)
escribió:

> Cristian , me parece q
>
> El lun., 30 sept. 2019 a las 23:28, Cristhian Martin (<
> cristhian en linuxar.com>) escribió:
>
>> Antes que nada buenas noches, hace un tiempo que no escribía en la lista,
>> aunque si leo periodicamente los correos que llegan de esta.
>>
>>
>>
>> Como siempre estoy sigo desarrollando con pyqt y en esta oportunidad
>> tengo un código que hace un par de días no le puedo encontrar la solución y
>> puede que sea una tonteria pero no me doy cuenta. Mas abajo pego el código
>> en cuestión el mismo arma un menú de acuerdo a una estructura de carpetas y
>> parámetros en los archivos de configuración que hay en ellas el problema me
>> surge a la hora de conectar los botones con funciones que tambien son
>> importadas, pero todos me quedan conectados a la misma función y no logro
>> detectar por que?? Agradecería si alguien me puede hechar una mano.
>>
>>
>>
>> Saludos Cordiales!!!!!
>>
>>
>>
>> Contenido del archivo cfg
>>
>> cfg = btn_abm_bancos,ABM
>> Bancos,11000,dlg_abm_bancos.py,Modulos.Configuracion.bancos.dlg_abm_bancos,ejecutar_banco
>>
>>
>>
>>
>>
>> def crear_menu(self, modulos):
>> for nombre in modulos:
>> self.ui.page = QtWidgets.QWidget()
>> self.ui.page.setObjectName(nombre)
>> self.ui.toolBox.addItem(self.ui.page, nombre)
>> self.ui.verticalLayout = QtWidgets.QVBoxLayout(self.ui.page)
>> self.ui.verticalLayout.setObjectName("layout_"+ nombre)
>> self.ui.scrollArea = QtWidgets.QScrollArea(self.ui.page)
>> self.ui.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame)
>> self.ui.scrollArea.setLineWidth(1)
>> self.ui.scrollArea.setWidgetResizable(True)
>> self.ui.scrollArea.setObjectName("scrollArea_" + nombre)
>> estructura, submodulos = contar_modulos(join('Modulos', nombre))
>> for submodulo in submodulos:
>> if submodulo[0:1] != '.':
>> path = join('.','Modulos', nombre, submodulo)
>> f = open(join(path, 'cfg'), 'r')
>> cfg = f.readline()
>> f.close()
>> cfg = cfg.split(',')
>> boton = QtWidgets.QPushButton()
>> icono = QtGui.QIcon()
>> icono.addFile(join(path, 'icono.png'), QtCore.QSize(32, 32),
>> QtGui.QIcon.Normal, QtGui.QIcon.Off)
>> boton.setIcon(icono)
>> boton.setIconSize(QtCore.QSize(32, 32))
>> boton.setObjectName(cfg[0])
>> boton.setFlat(True)
>> boton.setWhatsThis(cfg[2])
>> boton.setText(cfg[1])
>> modulo = importlib.import_module(cfg[4].replace('\n', ''))
>> funcion = getattr(modulo, cfg[5].replace('\n', ''))
>> boton.clicked.connect(lambda: funcion(self.ui))
>> self.ui.verticalLayout.addWidget(boton)
>> spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum,
>> QtWidgets.QSizePolicy.Expanding)
>> self.ui.verticalLayout.addItem(spacerItem)
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191001/0b82c549/attachment.html>


Más información sobre la lista de distribución pyar