para instalar descargar creator python pyqt pyqt5 qt-designer uic

python - instalar - ¿Cómo personalizar el código del widget de diseño de Qt?



qt ui python (1)

La forma más común de resolver esto es mediante el uso de la promoción de widgets . Esto le permitirá reemplazar un widget definido en Qt Designer con su propia clase personalizada. Los pasos para hacer esto son los siguientes:

En Qt Designer, seleccione el QGraphicsView que desea reemplazar, luego haga clic con el botón derecho y seleccione Promover a .... En el cuadro de diálogo, establezca el nombre de clase promocionado en "custom_gv" y establezca el archivo de encabezado en la ruta de importación de python para el módulo que contiene esta clase (por ejemplo, "mypkg.widgets"). A continuación, haga clic en Agregar y Promocionar , y verá el cambio de clase de "QGraphicsView" a "custom_gv" en el panel Inspector de objetos.

Cuando el archivo ui Qt Designer se convierte en código PyQt, automáticamente agregará una instrucción de importación como esta:

from mypkg.widgets import custom_gv

y luego en el código convertido reemplazará algo como esto:

self.graphicsView = QtWidgets.QGraphicsView(MainWindow)

con este:

self.graphicsView = custom_gv(MainWindow)

Por lo tanto, el código en el archivo ui no sabe nada sobre la clase personalizada: es solo un nombre que se importa de otra parte. Eso significa que eres completamente libre de escribir la clase personalizada de la manera que quieras.

En PyQt, este mecanismo funciona de la misma manera con pyuic que con el módulo uic . Las funciones loadUi y loadUiType generan exactamente el mismo código que pyuic . La única diferencia es que la herramienta pyuic escribe el código generado en un archivo, mientras que el módulo uic carga directamente a través de exec .

Necesito agregar algunas funciones a un widget de gráficos en un formulario que creé usando Qt Designer.

Por ejemplo, normalmente haría algo como esto:

class custom_gv(QGraphicsView): def __init__(self): super().__init__() def zoom(self): # custom code here

Pero en este caso, la vista de gráficos es parte de la ventana que hice en Qt Designer. Sé que puede usar la función "promocionar a" en el diseñador de Qt, pero no sé cómo utilizarlo en el código, especialmente si se considera que utilizo este método para usar las ventanas de Qt Designer:

from PyQt5.uic import loadUiType custom_window = loadUiType(''ui.ui'') class Window(QMainWindow, custom_window): def __init__(self): QMainWindow.__init__(self) custom_window.__init__(self) self.setupUi(self)

Entonces, ¿cómo voy a personalizar el código de la vista de gráficos en mi ventana cuando uso Qt Designer?