[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