PyQt5 iki dialog arasında geçiş

Merhabalar ben bir uygulama yapıyorum uygulamamda login register kısmı var şimdi ben uygulamamda login windowundaki register buttonuna basıldığında register ekranına register ekranındaki login buttonuna basıldığında login ekranına dönmesini istiyorum bunun için kod yazdım oluyorda fakat ikinci kez yapmaya kalktığımda uygulama register classını bulamıyor kodlar şunlar:
#login kısmındaki register buttonunun fonksiyonu cssden() registerin classı
def registerButtonClicked(self):

        self.a = cssden()

        self.a.show()

        self.hide()

#register kısmındaki login buttonu LoginWindow() loginin classı
def logButtonClicked(self):

        self.ui = LoginWindow()

        self.ui.show()

        self.hide()
1 Beğeni

sorunumuza yardımcı olabilir misiniz ?

Merhaba,
Dosyaların içeriğini görebilir miyiz? Bu şekilde yardımcı olmak zor.

ben ilk paragrafi parse edemedim ingilizce ayristirmak veya cozumlemek demek kod da calismiyo yazilan fonksiyonlar cagrilmamis cagrilsalar hata verirler cssden tanimlanmamis

bu register .py dosyası
from PyQt5.QtWidgets import (QMessageBox,QApplication, QWidget, QToolTip, QPushButton,
QDesktopWidget, QWidget, QAction, qApp, QToolBar, QVBoxLayout,
QComboBox,QLabel,QLineEdit,QGridLayout,QMenuBar,QMenu,QStatusBar,
QTextEdit,QDialog,QFrame,QProgressBar
)
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtGui import QIcon,QFont,QPixmap,QPalette
from PyQt5.QtCore import QCoreApplication, Qt,QBasicTimer, QPoint
from login import*

import sys


class cssden(QWidget):
    def __init__(self):
        super().__init__()


        self.mwidget = QWidget(self)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.center()
        self.setFixedSize(600,400)
        self.setStyleSheet("background-color:rgb(35,35,35);")


        #label1
        self.label1 = QLabel("Code" , self)
        self.label1.setFont(QFont('Firestarter' , 30))
        self.label1.setGeometry(200,0,150,150)
        self.label1.setAlignment(Qt.AlignTop)
        self.label1.setStyleSheet("color:red")

        #duelLabel
        self.duelLabel = QLabel("Duel" , self)
        self.duelLabel.setFont(QFont('Firestarter' , 30))
        self.duelLabel.setGeometry(300,0,150,150)
        self.duelLabel.setAlignment(Qt.AlignTop)
        self.duelLabel.setStyleSheet("color:orange")

        #closebox
        self.closebox = QPushButton("X" , self)
        self.closebox.setFlat(True)
        self.closebox.setGeometry(550,0,50,30)
        self.closebox.clicked.connect(self.closeboxEvent)
        self.closebox.setStyleSheet("background-color:red;color:white;")

        #minimizebox
        self.minimizebox = QPushButton("_" , self)
        self.minimizebox.setGeometry(500,0,50,30)
        self.minimizebox.setFlat(True)
        self.minimizebox.clicked.connect(self.minimizeboxEvent)
        self.minimizebox.setStyleSheet("background-color:gray;color:white;")

        #emaillabel
        self.emaillabel = QLabel("Email" , self)
        self.emaillabel.setGeometry(100,50,100,100)
        self.emaillabel.setFont(QFont('Arial',18))
        self.emaillabel.setStyleSheet('color:silver')


        self.logonClicked = False
        #emailtextbox
        self.emailtext = QLineEdit(self)
        self.emailtext.move(200,85)
        self.emailtext.resize(300,30)
        self.emailtext.setStyleSheet("border: 3px solid dimgray;border-style:outset;border-width:2px;border-radius:10px;color:silver")

        #uslabel
        self.username = QLabel("Username",self)
        self.username.setFont(QFont('Arial' , 18))
        self.username.setGeometry(55,120,120,85)
        self.username.setStyleSheet("color:#BFBFBF;")

        #ustextbox
        self.ustextbox = QLineEdit(self)
        self.ustextbox.move(200,150)
        self.ustextbox.resize(300,30)
        self.ustextbox.setStyleSheet("border: 3px solid dimgray;border-style:outset;border-width:2px;border-radius:10px;color:silver")

        #passlabel
        self.passlabel = QLabel("Password",self)
        self.passlabel.setFont(QFont('Arial' , 18))
        self.passlabel.setGeometry(55,190,120,85)
        self.passlabel.setStyleSheet("color:#BFBFBF;")


        #passtextbox
        self.passtextbox = QLineEdit(self)
        self.passtextbox.move(200,215)
        self.passtextbox.resize(300,30)
        self.passtextbox.setStyleSheet("border: 3px solid dimgray;border-style:outset;border-width:2px;border-radius:10px;color:silver")

        #registerbutton
        self.registerbutton = QPushButton("Register" , self)
        self.registerbutton.setGeometry(250,280,100,30)
        self.registerbutton.setStyleSheet("background-color:#757D75;border-style:outset;border-width:2px;border-radius:15px;padding:6px;border-color:#264348;")
        self.registerbutton.clicked.connect(self.registerDB)

        #logbutton
        self.logbutton = QPushButton("L͟o͟g͟i͟n͟",self)
        self.logbutton.setGeometry(270,320,50,20)
        self.logbutton.setFlat(True)
        self.logbutton.clicked.connect(self.logButtonClicked)
        self.logbutton.setFont(QFont('Arial' , 8))
        self.logbutton.setStyleSheet("background-color:gray;color:rgb(175,93,72)")



        print("12")

        self.oldPos = self.pos()
        self.show()

    #center
    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()

    def mouseMoveEvent(self, event):
        delta = QPoint (event.globalPos() - self.oldPos)
        #print(delta)
        self.move(self.x() + delta.x(), self.y() + delta.y())
        self.oldPos = event.globalPos()

    #closebox
    def closeboxEvent(self):
        app2 = QApplication(sys.argv)
        app2.quit()

    #minimizebutton
    def minimizeboxEvent(self):
        self.showMinimized()

    def registerDB(self):
        pass

    def logButtonClicked(self):
        self.ui = LoginForm()
        self.hide()
        self.ui.show()
from PyQt5.QtWidgets import (QMessageBox,QApplication, QMainWindow, QToolTip, QPushButton,
                             QDesktopWidget, QMainWindow, QAction, qApp, QToolBar, QVBoxLayout,
                             QComboBox,QLabel,QLineEdit,QGridLayout,QMenuBar,QMenu,QStatusBar,
                             QTextEdit,QDialog,QFrame,QProgressBar
                             )
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtGui import QIcon,QFont,QPixmap,QPalette
from PyQt5.QtCore import QCoreApplication, Qt,QBasicTimer, QPoint
import sys
from register import*

class LoginForm(QMainWindow):
    def __init__(self):
        super().__init__()

        self.mwidget = QMainWindow(self)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)


        #size
        self.setFixedSize(600,400)
        self.center()
        self.setStyleSheet("background-color:rgb(35,35,35);")

        #label1
        self.label1 = QLabel("Code" , self)
        self.label1.setFont(QFont('Firestarter' , 30))
        self.label1.setGeometry(200,0,150,150)
        self.label1.setAlignment(Qt.AlignTop)
        self.label1.setStyleSheet("color:red")

        #duelLabel
        self.duelLabel = QLabel("Duel" , self)
        self.duelLabel.setFont(QFont('Firestarter' , 30))
        self.duelLabel.setGeometry(300,0,150,150)
        self.duelLabel.setAlignment(Qt.AlignTop)
        self.duelLabel.setStyleSheet("color:orange")

        #closebox
        self.closebox = QPushButton("X" , self)
        self.closebox.setFlat(True)
        self.closebox.setGeometry(550,0,50,30)
        self.closebox.clicked.connect(self.closeboxEvent)
        self.closebox.setStyleSheet("background-color:red;color:white;")

        #minimizebox
        self.minimizebox = QPushButton("_" , self)
        self.minimizebox.setGeometry(500,0,50,30)
        self.minimizebox.setFlat(True)
        self.minimizebox.clicked.connect(self.minimizeboxEvent)
        self.minimizebox.setStyleSheet("background-color:gray;color:white;")


        # usernametextbox
        self.ustextbox = QLineEdit(self)
        self.ustextbox.move(250,95)
        self.ustextbox.resize(300,30)
        self.ustextbox.setStyleSheet("border: 3px solid dimgray;border-style:outset;border-width:2px;border-radius:10px;color:silver")

        #usernamelabel
        self.label2 = QLabel("Email" , self)
        self.label2.setFont(QFont('Arial' , 18))
        self.label2.setGeometry(140,60,100,100)
        self.label2.setStyleSheet("color:#BFBFBF;")

        #passtextbox
        self.passtextbox = QLineEdit(self)
        self.passtextbox.move(250,195)
        self.passtextbox.resize(300,30)
        self.passtextbox.setStyleSheet("border: 3px solid dimgray;border-style:outset;border-width:2px;border-radius:10px;color:silver")

        #passlabel
        self.label3 = QLabel("Password",self)
        self.label3.setFont(QFont('Arial' , 18))
        self.label3.setGeometry(100,150,120,120)
        self.label3.setStyleSheet("color:#BFBFBF;")

        #letsgobutton
        self.letsgobutton = QPushButton("Lets Go" , self)
        self.letsgobutton.setGeometry(250,250,100,30)
        self.letsgobutton.setStyleSheet("background-color:#757D75;border-style:outset;border-width:2px;border-radius:15px;padding:6px;border-color:#264348;")
        self.letsgobutton.clicked.connect(self.letsgoDB)


        #registerlinklabel
        self.regButton = QPushButton("R͟e͟g͟i͟s͟t͟e͟r͟",self)
        self.regButton.setGeometry(270,300,50,20)
        self.regButton.clicked.connect(self.registerLabelClicked)
        self.regButton.setFlat(True)
        self.regButton.setFont(QFont('Arial' , 8))
        self.regButton.setStyleSheet("background-color:rgb(35,35,35);color:rgb(175,93,72)")


        self.oldPos = self.pos()


    #center
    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()

    def mouseMoveEvent(self, event):
        delta = QPoint (event.globalPos() - self.oldPos)
        #print(delta)
        self.move(self.x() + delta.x(), self.y() + delta.y())
        self.oldPos = event.globalPos()

    #closebutton
    def closeboxEvent(self):
    	app.quit()

    #minimizebutton
    def minimizeboxEvent(self):
    	self.showMinimized()

    #registerlabel
    def registerLabelClicked(self):
        self.widget = QWidget()
        self.a = cssden()
        self.hide()
        self.a.show()

        
    #letsgobuttondb
    def letsgoDB(self):
        pass
            


if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = LoginForm()
    ex.show()
    sys.exit(app.exec_())

bu login.py dosyası

hocam Bir dahakine ara sözleri - içine veya , içine alır mısınız? okumakta güçlük çektim kusura bakmayın :sweat_smile:

1 Beğeni

suradaki yazim stilimin normalden ne kadar farkli oldugunu goremiyor musun duzgun yaziya daha alisik olman lazim sanirim cunku ben bunu yazarken bile zorlandim birak okumayi cevaplanmasini istedigin sorunun metnini okumayi denedin mi peki cunku sorunumuza yardimci olabilir misiniz diyene kadar bu bana yazdigini OP’ye -original post veya poster yani basligi acan insan veya soru- yazsan belki bizi ayni okuma guclugunden kurtarirdin.

:​)

1 Beğeni

import * kodun okunmasini zorlastirmis (QtWidgets’ta niye kullanmiyorsun / import * yerine QtWidgets’taki stil kullanilabilir) ama anladigim kadariyla logine donmek icin ana pencere tekrar yaratilmaya calisiliyor. Oysa ki tekrar yaratmak yerine nasil saklandiysa o sekilde gorunur yapilmasi lazim.

Hatta widget’larin yaratilmasini son ana birakmak yerine hepsini sakli bir sekilde yaratip yeri geldiginde gosterip saklamak da guzel bir yontem.

Veya ikisinin ortasi, widget’lar/pencereler ilk gerektiklerinde yaratilip, bir degiskende saklanip, sonra gerektiklerinde oradan kullanilabilirler.

1 Beğeni

@aib hocam saolun fikriniz için anladım :slight_smile: