[pyar] PyQt

Wilson Cunalata wilsonrobertocunalata en gmail.com
Dom Mayo 15 22:56:43 ART 2016


Buenas noches gracias por las ideas que me dieron .
Siguiendo sus recomendaciones he revisado Pyside , el cual es casi similar
a PyQt hasta lo que estoy revisando.

Si alguien me pudiese ayudar con algo puntual , esto tratando de realizar
una app que primero me muestro un QWidget solicitando usuario y clave , una
vez se ingrese los datos y se de click en Login me permita cargar otro
QWidget o WMainWindow, segun el codigo que estoy realizando solo he podido
ocultar el primero y mostrar el segun pero me arroja de error que :

   ret = app2.exec_();
NameError: global name 'app2' is not defined

Aunque aun asi si funciona , pero me da la duda como instanciarlo .

Adjunto los archivos como lo estoy realizando .

Les agradesco el inicial es inicio.py

El 13 de mayo de 2016, 16:41, Wilson Cunalata <
wilsonrobertocunalata en gmail.com> escribió:

> Buenos tardes, me pudiesen ayudar con documentacion o ejemplos de
> proyectos realizado con PyQt , me refiero para poder acceder a propiedades
> , metodos de ventanas , textos, botones , etc.
>
> Ademas desease saber si con QT designer pruedo diseñar un proyecto mediano
> , con ventanas modales, menus , grids entre otras cosas.
>
> Agradesco por la ayuda que me puedan brindar .
>
>
>


-- 


*Saludos .Ing. Wilson Cunalata*

ADMINISTRADOR DE REDES

Departamento Financiero

*Universidad Tecnica de Ambato *

(593) 984867944

(593) 33730260 EXT 5120
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160515/0887b018/attachment-0001.html>
------------ próxima parte ------------
import sys
from PySide.QtGui import  *
from PySide.QtCore import *
import loadUiType;

Ui_Login = loadUiType.loadUiType("login.ui")[0];
Ui_Principal = loadUiType.loadUiType("mainWindow1.ui")[0];

class Login(QMainWindow,Ui_Login):
    def __init__(self):
        super(Login,self).__init__();
        ## inicializacion
        self.setupUi(self);
        self.setFixedSize(400,400);
        ## funciones
        self.ButtonSalir.clicked.connect(self.button_salir);
        self.ButtonLogin.clicked.connect(self.button_login);
        #self.show();

    def button_login(self):
        #self.hide();

        #sys.exit(app.exec_());
        print app.instance();
        #app2 = QApplication(sys.argv);
        classnn = Principal();
        ret = app2.exec_();
        sys.exit(ret);

    def button_salir(self):
        sys.exit();#exit(app.exec_());

class Principal(QMainWindow,Ui_Principal):
    def __init__(self):
       super(Principal, self).__init__();
       self.setupUi(self);
       self.ButtonSalir.clicked.connect(self.button_salir);
       self.show();
    def button_salir(self):
        sys.exit();

if __name__ == '__main__':
   app = QApplication(sys.argv);
   class1 = Login();
   class1.show();
   ret = app.exec_();
   sys.exit();
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: mainWindow1.ui
Type: application/octet-stream
Size: 1577 bytes
Desc: no disponible
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160515/0887b018/attachment-0002.obj>
------------ próxima parte ------------
import sys
from PySide.QtGui import  *
from PySide.QtCore import *
import loadUiType;

#from ui_mainWindow import Ui_mainWindow;

Ui_Login = loadUiType.loadUiType("login.ui")[0];
Ui_MainWindow = loadUiType.loadUiType("mainWindow1.ui")[0];

class Login(QMainWindow,Ui_Login):
    def __init__(self):
        super(Login,self).__init__();
        ## inicializacion
        self.setupUi(self);
        self.setFixedSize(400,400);
        ## funciones
        self.ButtonSalir.clicked.connect(self.button_salir);
        self.ButtonLogin.clicked.connect(self.button_login);
        self.show();

    def button_login(self):
        self.hide();
        #exit(app.exec_());
        #app2 = QApplication(sys.argv);
        mainWin = MainWindow()
        #ret = app2.exec_()
        sys.exit(parent.exec_());
    def button_salir(self):
        exit(app.exec_());
class MainWindow(QMainWindow,Ui_MainWindow):
    def __init__(self):
       super(MainWindow, self).__init__();
       self.setupUi(self);
       self.ButtonSalir.clicked.connect(self.button_salir);#self.buttonLogin.clicked.connect(self.button_login);
       self.show();
    #def button_salir(self):
       # self.text1.setText("wilson roerbeb");#self.text2.append("wilson roerbeb");
        #self.label.setText("wilson123");
    #    self.text3.append("Go, Go, Go!")
    #    self.text1.setPlainText("wfssdfsdfsderwe");

    def button_salir(self):
        exit(app.exec_());
    #def button_login(self):#    mainWin = Login();
if __name__ == '__main__':
   app = QApplication(sys.argv)
   mainWin = Login()
   ret = app.exec_()
   sys.exit( ret )
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: login.ui
Type: application/octet-stream
Size: 2902 bytes
Desc: no disponible
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160515/0887b018/attachment-0003.obj>
------------ próxima parte ------------
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'login.ui'
#
# Created: Sun May 15 19:50:16 2016
#      by: pyside-uic 0.2.15 running on PySide 1.2.4
#
# WARNING! All changes made in this file will be lost!

from PySide import QtCore, QtGui

class Ui_LOGIN(object):
    def setupUi(self, LOGIN):
        LOGIN.setObjectName("LOGIN")
        LOGIN.resize(374, 281)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("source/pdf.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        LOGIN.setWindowIcon(icon)
        self.TxtUser = QtGui.QTextEdit(LOGIN)
        self.TxtUser.setGeometry(QtCore.QRect(80, 40, 231, 31))
        self.TxtUser.setObjectName("TxtUser")
        self.TxtPassword = QtGui.QTextEdit(LOGIN)
        self.TxtPassword.setGeometry(QtCore.QRect(80, 110, 221, 31))
        self.TxtPassword.setAcceptRichText(True)
        self.TxtPassword.setObjectName("TxtPassword")
        self.label = QtGui.QLabel(LOGIN)
        self.label.setGeometry(QtCore.QRect(10, 50, 46, 13))
        self.label.setObjectName("label")
        self.label_2 = QtGui.QLabel(LOGIN)
        self.label_2.setGeometry(QtCore.QRect(10, 110, 46, 13))
        self.label_2.setObjectName("label_2")
        self.ButtonLogin = QtGui.QPushButton(LOGIN)
        self.ButtonLogin.setGeometry(QtCore.QRect(60, 220, 75, 23))
        self.ButtonLogin.setObjectName("ButtonLogin")
        self.ButtonSalir = QtGui.QPushButton(LOGIN)
        self.ButtonSalir.setGeometry(QtCore.QRect(180, 220, 75, 23))
        self.ButtonSalir.setObjectName("ButtonSalir")

        self.retranslateUi(LOGIN)
        QtCore.QMetaObject.connectSlotsByName(LOGIN)

    def retranslateUi(self, LOGIN):
        LOGIN.setWindowTitle(QtGui.QApplication.translate("LOGIN", "ACCESO SISTEMA", None, QtGui.QApplication.UnicodeUTF8))
        self.TxtPassword.setHtml(QtGui.QApplication.translate("LOGIN", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;\"><br /></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("LOGIN", "Usuario :", None, QtGui.QApplication.UnicodeUTF8))
        self.label_2.setText(QtGui.QApplication.translate("LOGIN", "Clave :", None, QtGui.QApplication.UnicodeUTF8))
        self.ButtonLogin.setText(QtGui.QApplication.translate("LOGIN", "Login", None, QtGui.QApplication.UnicodeUTF8))
        self.ButtonSalir.setText(QtGui.QApplication.translate("LOGIN", "Salir", None, QtGui.QApplication.UnicodeUTF8))

------------ próxima parte ------------
import pysideuic
import xml.etree.ElementTree as xml
from cStringIO import StringIO
import PySide;
#import QtGui

def loadUiType(uiFile):
		"""
		Pyside lacks the "loadUiType" command, so we have to convert the ui file to py code in-memory first
		and then execute it in a special frame to retrieve the form_class.
		"""
		parsed = xml.parse(uiFile)
		widget_class = parsed.find('widget').get('class')
		form_class = parsed.find('class').text

		with open(uiFile, 'r') as f:
			o = StringIO()
			frame = {}

			pysideuic.compileUi(f, o, indent=0)
			pyc = compile(o.getvalue(), '<string>', 'exec')
			exec pyc in frame

			#Fetch the base_class and form class based on their type in the xml from designer
			form_class = frame['Ui_%s'%form_class]
#			base_class = eval('QtGui.%s'%widget_class)
			base_class = eval('PySide.QtGui.%s'%widget_class)
		return form_class, base_class


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