mi codigo
Código:
Con estas lineas me funciona lo que yo quiero, pero me interesa que el comando:import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog from PyQt5 import uic class subvent(QDialog): def __init__(self): QDialog.__init__(self) uic.loadUi('ventana.ui', self) class Principal(QMainWindow): def __init__(self): QMainWindow.__init__(self) uic.loadUi('conexion.ui', self) self.boton.clicked.connect(self.invocar) self.Sub = subvent() self.Sub.boton.clicked.connect(self.ocultar) def ocultar(self): self.Sub.linea.setEnabled(False) def invocar(self): self.Sub.exec_() app = QApplication(sys.argv) ventana = Principal() ventana.show() app.exec_()
Código:
que es el que da la orden de desactivar la linea de texto, este en otro archivo, para despues importarla (esto es por que tengo pensado hacer un programa y ahora es tan solo una linea, pero mas adelante serán mucha mas, y de esa manera lo tendre mas organizo el programa, que si esta todo al pegote).self.Sub.linea.setEnabled(False)
Lo que hago es importar desde el archivo "meca", donde estara separado toda las funciones de la QWidget. Realizo la conexion de boton de la QWidget y uso el metodo importado
El codigo modificado:
Código:
codigo archivo meca:import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog from PyQt5 import uic #importamos el archivo import meca class subvent(QDialog): def __init__(self): QDialog.__init__(self) uic.loadUi('ventana.ui', self) class Principal(QMainWindow): def __init__(self): QMainWindow.__init__(self) uic.loadUi('conexion.ui', self) self.boton.clicked.connect(self.invocar) self.Sub = subvent() # realizamos la conexion del boton de la Widget self.Sub.boton.clicked.connect(self.ocultar) def ocultar(self): #Cargo el metodo del archivo meca self.accion = meca.ocultar() def invocar(self): self.Sub.exec_() app = QApplication(sys.argv) ventana = Principal() ventana.show() app.exec_()
Código:
He realizado varias combinaciones quitando y poniendo cosas, pero siempre me da error. Se que funciona, ya que si en def ocultar, cambio el comando por print('hola'), cada vez que pulso en el boton del QWidget, me devuelve la terminal 'hola'.def ocultar(): Sub.linea.setEnabled(False)
Seguro que sera un tontería, pero ya no se mas donde mirar.
Gracias de antemano