Ajuda pyqt5

61 views
Skip to first unread message

Matheus Malavazzi

unread,
Sep 16, 2021, 6:46:31 PM9/16/21
to Python Brasil
Fala galera, boa tarde

Estou elaborando um sistema de cadastro com varias telas, estas convertidas do pyqt5, contudo, devido ser iniciante, estou com dificuldades de abrir uma tela a partir de outra, ou seja, quando dou o comando para chamar um tela de casdatro por exemplo, esta vem sem os codigos - estes forma inseridos em cada tela.

Alguem poderia dar uma ajuda??

Vou inserir um pedaço do comendo - Login, o qual chama a tela incial

def chama(self):
        textUser = ""
        textPassword = ""
        mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        password="",
        database="python_matheus"
        )
        Usuario = self.lineEdit_user.text()
        Senha = self.lineEdit_password.text()
        

        def showMessage(message):
            self.frame_error.show()
            self.label_error.setText(message)

        # CHECK USER
        if not self.lineEdit_user.text():
            textUser = " User Empyt. "
            self.lineEdit_user.setStyleSheet(self.styleLineEditError)
        else:
            textUser = ""
            self.lineEdit_user.setStyleSheet(self.styleLineEditOk)

        # CHECK PASSWORD
        if not self.lineEdit_password.text():
            textPassword = " Password Empyt. "
            self.lineEdit_password.setStyleSheet(self.styleLineEditError)
        else:
            textPassword = ""
            self.lineEdit_password.setStyleSheet(self.styleLineEditOk)


        #CHECK FIELDS
        try:
            cursor = mydb.cursor()
            cursor.execute("SELECT Pass FROM cadastro_usuario WHERE User = '{}'".format(Usuario))
            senha_bd = cursor.fetchall()
            
            if senha_bd[0][0] == Senha:
                text = " Login OK. "
                showMessage(text)
                self.frame_error.setStyleSheet(self.stylePopupOk)
                self.ui = Ui_Base()
                self.ui.setupUi(self)
                self.show()
                Login.close()                     
               
            else:
                text = " Password Wrong. "
                showMessage(text)
                self.frame_error.setStyleSheet(self.stylePopupError)

        except:
            text = " Login Wrong. "
            showMessage(text)
            self.frame_error.setStyleSheet(self.stylePopupError)

        if textUser + textPassword != '':
            text = textUser + textPassword
            showMessage(text)
            self.frame_error.setStyleSheet(self.stylePopupError)
        
        else:
            pass

A tela principal esta abaixo:

from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import (QCoreApplication, QPropertyAnimation, QDate, QDateTime, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt, QEvent)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QIcon, QKeySequence, QLinearGradient, QPalette, QPainter, QPixmap, QRadialGradient)
from PySide2.QtWidgets import *
from protocolo import *
from config import *
import PySide2
import mysql.connector


class Ui_Base(QtWidgets.QDialog):

    def consulta(self):
        self.consulta = uic.loadUi("Consulta.ui")
        self.consulta.show()
        banco = mysql.connector.connect(
        host="localhost",
        user="root",
        password="",
        database="python_matheus"
        )
        

        cursor = banco.cursor()
        cursor.execute("SELECT * FROM cadastro_protocolo2")
        dados_lidos = cursor.fetchall()
        self.tableWidget.setRowCount(len(dados_lidos))
        self.tableWidget.setColumnCount(3)

        for i in range(0, len(dados_lidos)):
             for j in range(0, 3):
                self.tableWidget.setItem(i,j,QtWidgets.QTableWidgetItem(str(dados_lidos[i][j])))
    
        banco.close()    

    #
    ##### Funções de Estetetica
    # 
            
    def menuAtivaConfiguracoesBas(self):
        self.menu_esquerda.setMaximumSize(QtCore.QSize(50, 16777215))
        self.frame_ima.setGeometry(QtCore.QRect(280, 0, 621, 501))
        self.botao_abrir_menu.clicked.connect(self.menuDesativaConfiguracoesBas)
    def menuDesativaConfiguracoesBas(self):
        self.menu_esquerda.setMaximumSize(QtCore.QSize(170, 16777215))
        self.frame_ima.setGeometry(QtCore.QRect(160, 0, 621, 501))
        self.botao_abrir_menu.clicked.connect(self.menuAtivaConfiguracoesBas)
       
     
    def menuAtivaConfiguracoesCad(self):
        self.frame_cadastro.setMinimumSize(QtCore.QSize(125, 120))
        self.btn_cadastro.clicked.connect(self.menuDesativaConfiguracoesCad)
    def menuDesativaConfiguracoesCad(self):
        self.frame_cadastro.setMinimumSize(QtCore.QSize(125, 0))
        self.btn_cadastro.clicked.connect(self.menuAtivaConfiguracoesCad)
        ##self.frame.setMaximumSize(QtCore.QSize(10, 150))

    def menuAtivaConfiguracoesProt(self):
        self.frame_consulta.setMinimumSize(QtCore.QSize(125, 120))
        self.btn_consulta.clicked.connect(self.menuDesativaConfiguracoesProt)
    def menuDesativaConfiguracoesProt(self):
        self.frame_consulta.setMinimumSize(QtCore.QSize(125, 0))
        self.btn_consulta.clicked.connect(self.menuAtivaConfiguracoesProt)
    
        
    def maximize(Base):
        Base.showMaximized()
        Base.frame_ima.setGeometry(QtCore.QRect(850, -20, 960, 960))
        Base.botao_maximizar.clicked.connect(Base.restore)
    
    def restore(self):
        Base.showNormal()
        self.frame_ima.setGeometry(QtCore.QRect(160, 0, 621, 501))
        self.botao_maximizar.clicked.connect(self.maximize)

       
    # Funções minimizar maximizar e fechar personalizadas-----------------------
   
    def fecharPrograma(self):
        sys.exit()
    
    def minimizar(self):
        Base.showMinimized()
        

    def config(self):
        self.ui = Ui_Config()
        self.ui.setupUi(self)
        self.show()
     

    def cadastro(self):
        self.ui = Ui_Protocolo()
        self.ui.setupUi(self)
        self.show()


        
    #
    ##### CORPO DO PROGRAMA
    #
    
    def setupUi(self, Base):
        
               
        # Remove window tlttle bar
        Base.setWindowFlags(QtCore.Qt.FramelessWindowHint) 
        
        Base.setObjectName("Base")
        Base.resize(930, 576)
        Base.setStyleSheet("border: rgb(0, 0, 0);")
.
.
.
.
.

Kaique Afonso

unread,
Sep 17, 2021, 7:41:23 AM9/17/21
to python...@googlegroups.com
Bom dia brother! A um tempo atrás eu também tive a dificuldade de chamar uma outra tela. Utilizo este código e funciona:

self.janela = QMainWindow()  #<- DEPENDENDO DA SUA JANELA PODE SER QMAINWINDOW OU QDIALOG
self.tela = FIND_PAC_FORM.Pesquisa_Pacien() #<- JANELA/SCRIPT IMPORTADA E SUA CLASSE
self.tela.pac_find(self.janela) #<- SUA FUNÇÃO PRINCIPAL QUE RODA A INTERFACE
self.janela.show()

Livre de vírus. www.avast.com.

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/e2d04439-e157-4fc8-965b-3c3a75b6546en%40googlegroups.com.


--
Kaique Afonso Ferreira do Rosário
Deus, Pátria e Família
Santo Antônio de Jesus (BA) - 44440-822
(75) 98172-9111 Oi  Kaique


Livre de vírus. www.avast.com.

Kaique Afonso

unread,
Sep 17, 2021, 7:43:14 AM9/17/21
to python...@googlegroups.com
Se quiser participar do nosso grupo para trocar ideias seria bom, eu mesmo trabalho com o PyQt5. Se quiser entrar aqui está o link: https://chat.whatsapp.com/FGqLkOaAPFm8GlQF274vK5

Livre de vírus. www.avast.com.

Em qui., 16 de set. de 2021 às 19:46, Matheus Malavazzi <mmala...@gmail.com> escreveu:
--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/e2d04439-e157-4fc8-965b-3c3a75b6546en%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages