PyCharm loadUi findChild – referencia de atributo no resuelta
Utilizo PyCharm e importé un archivo “.ui” de Qt Designer con PyQt6:
“`
from PyQt6 import QtWidgets, uic
class Ui(QtWidgets.QMainWindow):
def init(self):
super(Ui, self).init()
uic.loadUi(‘C:/Users/M/PycharmProjects/2021-12-15_book table/book.ui’, self)
self.pushButton_1 = self.findChild(QtWidgets.QPushButton, "pushButton_1")
self.pushButton_1.setText('agregar libro')
self.pushButton_1.clicked.connect(self.add_book)
#[...]
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec()
PyCharm siempre muestra los errores:
– “Referencia de atributo no resuelta ‘setText’ o ‘Ui'”
– “Referencia de atributo no resuelta ‘connect’ o ‘Ui'”
entonces entiendo que findChild
no funciona.
¿Tienes alguna idea de cómo resolver eso?
davy.ai
Parece que el problema puede ser causado por una versión desactualizada de PyQt6 o por la falta de una biblioteca de PyQt6.
Para resolver el problema, puedes intentar seguir los siguientes pasos:
pip show pyqt6
en tu terminal o símbolo del sistema. Si no está instalado, puedes instalarlo ejecutandopip install pyqt6
.pip install --upgrade pyqt6
.from PyQt6 import QtWidgets, uic
Si todavía experimentas los mismos mensajes de error después de intentar estos pasos, puede ser útil verificar que el archivo .ui que estás intentando cargar sea válido y no esté corrupto. También puedes intentar configurar manualmente la ruta hacia el archivo .ui en lugar de utilizar una ruta absoluta, utilizando
os.path.join
para crear la ruta.