Entonces, si entro en QtDesigner y construyo una interfaz de usuario, se guardará como un archivo .ui. ¿Cómo puedo hacer esto como un archivo de Python o usarlo en Python?
python
user-interface
qt
pyqt
qt-designer
Chris
fuente
fuente

Respuestas:
Otra forma de usar .ui en su código es:
from PyQt4 import QtCore, QtGui, uic class MyWidget(QtGui.QWidget) ... #somewhere in constructor: uic.loadUi('MyWidget.ui', self)ambos enfoques son buenos. No olvide que si usa archivos de recursos Qt (extremadamente útiles) para iconos, etc., también debe compilarlos:
Tenga en cuenta que cuando
uiccompila la interfaz, agrega 'import images_rc' al final del archivo .py, por lo que debe compilar recursos en el archivo con este nombre o cambiarle el nombre en el código generado.fuente
Combinando la respuesta de Max y la publicación de la lista de correo de Shriramana Sharma , construí un pequeño ejemplo de trabajo para cargar un
mywindow.uiarchivo que contiene unQMainWindow(así que simplemente elija crear una ventana principal en elFile-Newdiálogo de Qt Designer ).Este es el código que lo carga:
import sys from PyQt4 import QtGui, uic class MyWindow(QtGui.QMainWindow): def __init__(self): super(MyWindow, self).__init__() uic.loadUi('mywindow.ui', self) self.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = MyWindow() sys.exit(app.exec_())fuente
Necesita generar un archivo python desde su archivo ui con la herramienta pyuic (site-packages \ pyqt4 \ bin)
pyuic form1.ui > form1.pycon pyqt4
pyuic4.bat form1.ui > form1.pyLuego puede importar el formulario1 en su secuencia de comandos.
fuente
Encontré este artículo muy útil.
http://talk.maemo.org/archive/index.php/t-43663.html
Describiré brevemente las acciones para crear y cambiar un archivo .ui a un archivo .py, extraídas de ese artículo.
agregue un "Widget de etiqueta". (Haga clic en Arrastrar y soltar)
la opción "Guardar como") Anote el directorio donde guardó su
archivo .ui "Hello World" . (Guardé el mío en (C :) por conveniencia)
El archivo se crea y guarda, ahora generaremos el código Python a partir de él usando pyuic.
se abre en pyscripter, luego "ejecuto" el archivo desde allí)
Espero que esto ayude a alguien.
fuente
También puede usar
uicen PyQt5 con el siguiente código.from PyQt5 import uic, QtWidgets import sys class Ui(QtWidgets.QDialog): def __init__(self): super(Ui, self).__init__() uic.loadUi('SomeUi.ui', self) self.show() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = Ui() sys.exit(app.exec_())fuente
En mi opinión, la forma más limpia es exportar primero a .py como se mencionó anteriormente:
pyuic4 foo.ui > foo.pyY luego úselo dentro de su código (por ejemplo
main.py), como:from foo import Ui_MyWindow class MyWindow(QtGui.QDialog): def __init__(self): super(MyWindow, self).__init__() self.ui = Ui_MyWindow() self.ui.setupUi(self) # go on setting up your handlers like: # self.ui.okButton.clicked.connect(function_name) # etc... def main(): app = QtGui.QApplication(sys.argv) w = MyWindow() w.show() sys.exit(app.exec_()) if __name__ == "__main__": main()De esta forma, otras personas que no usan qt-designer pueden leer el código, y también mantienen su código de funcionalidad fuera de lo
foo.pyque podría ser sobrescrito por el diseñador. Solo hace referencia auitravés de laMyWindowclase como se ve arriba.fuente
self.ui.okButton.clicked.connect(self.function_name)me daTypeError: event() takes 1 positional argument but 2 were given. ¿Cómo lo resolviste?Puede convertir sus archivos .ui en un archivo Python ejecutable usando el siguiente comando.
pyuic4 -x form1.ui > form1.pyAhora puede ejecutar inmediatamente el archivo Python como
python3(whatever version) form1.pyPuedes importar este archivo y puedes usarlo.
fuente
puedes compilar los archivos de interfaz de usuario como este
pyuic4 -x helloworld.ui -o helloworld.pyfuente
Para compilar archivos .ui en archivos .py, hice:
python pyuic.py form1.ui > form1.pyAtt.
fuente
en pyqt5 para convertir de un archivo ui a un archivo .py
pyuic5.exe youruifile.ui -o outputpyfile.py -xfuente
Usando Anaconda3 (septiembre de 2018) y QT Designer 5.9.5. En QT Designer, guarde su archivo como ui. Abra el indicador Anaconda. Busque su archivo: cd C: .... (copie / pegue la ruta de acceso de su archivo). Luego escriba: pyuic5 -x helloworld.ui -o helloworld.py (helloworld = nombre de su archivo). Entrar. Inicie Spyder. Abra su archivo .py.
fuente
( Noviembre de 2020 ) Esto funcionó para mí ( UBUNTU 20.04 ):
pyuic5 /home/someuser/Documents/untitled.ui > /home/someuser/Documents/untitled.pyfuente