не может вызвать класс из другого файла Python - PullRequest
0 голосов
/ 05 ноября 2019

все первый класс из основного файла и отображение окна, а затем при вызове signupform class из другого файла нет никакого ответа

main.py

from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QVBoxLayout, QSizeGrip, QWidget, QApplication, QPushButton, QLabel, QHBoxLayout, QGridLayout, QGroupBox, QLineEdit, QSpacerItem, QDesktopWidget, QTextEdit
from pynput import keyboard
from pyside2uic.properties import QtWidgets


def hex2QColor(c):
    """Convert Hex color to QColor"""
    r = int(c[0:2], 16)
    g = int(c[2:4], 16)
    b = int(c[4:6], 16)
    return QtGui.QColor(r, g, b)


class RoundedWindow(QWidget):
    def __init__(self, parent=None):
        super(RoundedWindow, self).__init__(parent)

        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)

        self.backgroundColor = hex2QColor("333333")
        self.foregroundColor = hex2QColor("000000")
        self.borderRadius = 20


        self.setMinimumSize(420, 290)
        self.setMaximumSize(420, 290)

        self.initUI()

    def initUI(self):
        self.createGridLayout()

        windowLayout = QVBoxLayout()
        windowLayout.addWidget(self.horizontalGroupBox)
        self.setLayout(windowLayout)

        self.show()

    def paintEvent(self, event):
        s = self.size()

        qp = QtGui.QPainter()
        qp.begin(self)
        qp.setRenderHint(QtGui.QPainter.Antialiasing, False)
        qp.setPen(self.foregroundColor)
        qp.setBrush(self.backgroundColor)
        qp.drawRoundedRect(0, 0, s.width(), s.height(), self.borderRadius, self.borderRadius)
        qp.end()


    def createGridLayout(self):
        self.horizontalGroupBox = QGroupBox("Login Form")
        self.horizontalGroupBox.setObjectName("ColoredGroupBox")
        font = QtGui.QFont()
        font.setFamily("Arial #009f9f")
        font.setPointSize(14)
        font.setBold(False)
        font.setItalic(False)
        font.setWeight(50)
        self.horizontalGroupBox.setFont(font)

        grdLayoutTop = QGridLayout()
        grdLayoutTop.setContentsMargins(5, 30, 10, 0)

        spacerItem = QSpacerItem(90, 20)
        grdLayoutTop.addItem(spacerItem, 0, 1, 1, 1)

        userLbl = QLabel('User Name')
        userEdtline = QLineEdit()
        userEdtline.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        userEdtline.setPlaceholderText("Write Your User Name and press Enter")

        grdLayoutTop.addWidget(userLbl, 0, 0)
        grdLayoutTop.addWidget(userEdtline, 0, 1)
        grdLayoutTop.setVerticalSpacing(30)

        passwrdLbl = QLabel('Password')
        passwrdEdtline = QLineEdit()
        passwrdEdtline.setPlaceholderText("Write Your Password")
        passwrdEdtline.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))

        passwrdEdtline.setEchoMode(QLineEdit.Password)
        grdLayoutTop.addWidget(passwrdLbl, 1, 0)
        grdLayoutTop.addWidget(passwrdEdtline, 1, 1)
        grdLayoutBttom = QGridLayout()
        grdLayoutBttom.setContentsMargins(10, 50, 10, 0)
        spacerItem = QSpacerItem(90, 20)
        grdLayoutBttom.addItem(spacerItem, 1, 1, 1, 1)
        grdLayoutBttom.setSpacing(30)
        signinBtn = QPushButton('Signin')
        signinBtn.setToolTip("Click To Signin")
        signinBtn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        signupBtn = QPushButton('Signup')
        signupBtn.setToolTip("Click To Signup If Haven't Account")
        signupBtn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        signupBtn.clicked.connect(self.showPopup)
        extBtn = QPushButton('Exit')
        extBtn.setToolTip("Click To Exit")
        extBtn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        extBtn.clicked.connect(quit)

        def onKeysSignin(key):
            if key == keyboard.Key.enter:
                passwrdEdtline.setFocus()
                print('{} is pressed'.format(key)+'aaaa')

        keyListener = keyboard.Listener(on_release=onKeysSignin)
        keyListener.start()

        grdLayoutBttom.addWidget(signinBtn, 1, 0)
        grdLayoutBttom.addWidget(signupBtn, 1, 1)
        grdLayoutBttom.addWidget(extBtn, 1, 2)
        self.vLayout = QVBoxLayout()
        self.vLayout.addLayout(grdLayoutTop)
        self.vLayout.addLayout(grdLayoutBttom)
        self.horizontalGroupBox.setLayout(self.vLayout)

    @staticmethod
    def center(w: QWidget):
        qr = w.frameGeometry()  # get a rectangle for the entire window
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)  # move center of rectangle to cp
        w.move(qr.topLeft())  # move top-left point of window to top-let point of rectangle

    def showPopup(self):
        import signup.py as winSignup
        myForm = winSignup.signupForm
        self.popup = myForm(self)
        self.popup.setGeometry(100, 200, 300, 400)
        self.center(self.popup)
        self.popup.show()
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    main = RoundedWindow()
    main.show()
sys.exit(app.exec_())

signup.py

from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QVBoxLayout, QSizeGrip, QWidget, QApplication, QPushButton, QLabel, QHBoxLayout, \
    QGridLayout, QGroupBox, QLineEdit, QSpacerItem, QDesktopWidget, QTextEdit
from pynput import keyboard
from pyside2uic.properties import QtWidgets

def hex2QColor(c):
    """Convert Hex color to QColor"""
    r = int(c[0:2], 16)
    g = int(c[2:4], 16)
    b = int(c[4:6], 16)
    return QtGui.QColor(r, g, b)


class signupForm(QWidget):
    def __init__(self, main):
        super().__init__()


        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)

        self.initUI()
        self.main = main

    def initUI(self):
        self.createRegisterGridLayout()
        registerLayout = QVBoxLayout()
        registerLayout.addWidget(self.horizontalRegisterGroupBox)
        self.setLayout(registerLayout)

        self.show()


    def createRegisterGridLayout(self):
        pass
        self.horizontalRegisterGroupBox = QGroupBox("Register Form")
        self.horizontalRegisterGroupBox.setObjectName("ColoredGroupBox")
        font = QtGui.QFont()
        font.setFamily("Arial #009f9f")
        font.setPointSize(14)
        font.setWeight(50)
        self.horizontalRegisterGroupBox.setFont(font)


        grdLayoutTop = QGridLayout()
        grdLayoutTop.setContentsMargins(5, 30, 10, 0)
        spacerItem = QSpacerItem(90, 20)
        grdLayoutTop.addItem(spacerItem, 0, 1, 1, 1)


        bg = QtCore.Qt.darkGray
        width = 480
        height = 680

         self.setAutoFillBackground(True)
        color = self.palette()
        color.setColor(self.backgroundRole(), bg)
        self.setPalette(color)

        self.setGeometry(450, 220, width, height)
        self.setMaximumSize(width, height)
        self.setMinimumSize(width, height)

        userNameLbl = QLabel('User Name')
        passwordLbl = QLabel('Password')
        fullnameLbl = QLabel('Full Name')
        phoneLbl = QLabel('PHONE')
        addressLbl = QLabel('Address')
        genderLbl = QLabel('Gender')
        branchLbl = QLabel('Branch')
        emailLbl = QLabel('Email')
        dateLbl = QLabel('Date')
        authorizedLbl = QLabel('Authoraized')

        userNameEdt = QLineEdit()
        passwordEdt = QLineEdit()
        fullnameEdt = QLineEdit()
        phoneEdt = QLineEdit()
        addressEdt = QLineEdit()
        emailEdt = QLineEdit()

        dateEdt = QLineEdit()
        nowDate = QDateTime.currentDateTime()

        dateEdt.setText(nowDate.toString( " dddd d MMMM  yyyy"))
        dateEdt.setEnabled(False)
        dateEdt.setCursor(QtGui.QCursor(QtCore.Qt.ClosedHandCursor))
        dateEdt.setStyleSheet("QLineEdit{"
                                "font:14 bold;"
                                "color:gray;"
                                "}")

        maleType = QRadioButton('Male')
        femaleType = QRadioButton('Female')
        maleType.setStyleSheet("font-weight: bold;color:darkcyan;")
        femaleType.setStyleSheet("font-weight: bold;color:darkcyan;")

        branchCombo = QComboBox()
        branchCombo.addItem('aaaaa')
        branchCombo.addItem('bbbbb')
        branchCombo.addItem('ccccc')
        branchCombo.addItem('ddddd')
        branchCombo.addItem('eeeee')

        authorizedCombo = QComboBox()
        authorizedCombo.addItem('aaaaa')
        authorizedCombo.addItem('bbbbb')
        authorizedCombo.addItem('ccccc')
        authorizedCombo.addItem('ddddd')
        authorizedCombo.addItem('eeeee')

        registerBtn = QPushButton('Register')
        registerBtn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        qutBtn = QPushButton('Quit')
        qutBtn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        qutBtn.clicked.connect(self.qutRegistForm)


        grdLayoutTop = QGridLayout()
        grdLayoutTop.setContentsMargins(10, 30, 20, 0)
        spacerItem = QSpacerItem(90, 20)
        grdLayoutTop.addItem(spacerItem, 1, 1, 1, 1)
        grdLayoutTop.setSpacing(20)
        grdLayoutTop.setHorizontalSpacing(50)

        grdLayoutTop.addWidget(userNameLbl, 1, 0)
        grdLayoutTop.addWidget(userNameEdt, 1, 1)

        grdLayoutTop.addWidget(passwordLbl, 2, 0)
        grdLayoutTop.addWidget(passwordEdt, 2, 1)

        grdLayoutTop.addWidget(fullnameLbl, 3, 0)
        grdLayoutTop.addWidget(fullnameEdt, 3, 1)

        grdLayoutTop.addWidget(phoneLbl, 4, 0)
        grdLayoutTop.addWidget(phoneEdt, 4, 1)

        grdLayoutTop.addWidget(addressLbl, 5, 0)
        grdLayoutTop.addWidget(addressEdt, 5, 1)

        grdLayoutMidTop = QGridLayout()
        grdLayoutMidTop.setContentsMargins(10, 20, 20, 20)
        spacerItem = QSpacerItem(90, 20)
        grdLayoutMidTop.addItem(spacerItem, 1, 1, 1, 1)
        grdLayoutMidTop.setSpacing(20)
        grdLayoutMidTop.setHorizontalSpacing(90)

        grdLayoutMidTop.addWidget(genderLbl, 1, 0)
        grdLayoutMidTop.addWidget(maleType, 1, 1)
        grdLayoutMidTop.addWidget(femaleType, 1, 2)
           # orderd widget in gridline
        grdLayoutMidBott = QGridLayout()
        grdLayoutMidBott.setContentsMargins(10, 0, 20, 20)
        grdLayoutMidBott.setSpacing(20)
        grdLayoutMidBott.setHorizontalSpacing(50)

        grdLayoutMidBott.addWidget(branchLbl, 7, 0)
        grdLayoutMidBott.addWidget(branchCombo, 7, 1)
          # orderd widget in gridline
        grdLayoutMidBott.addWidget(emailLbl, 8, 0)
        grdLayoutMidBott.addWidget(emailEdt, 8, 1)

        grdLayoutMidBott.addWidget(dateLbl, 9, 0)
        grdLayoutMidBott.addWidget(dateEdt, 9, 1)

        grdLayoutMidBott.addWidget(authorizedLbl, 10, 0)
        grdLayoutMidBott.addWidget(authorizedCombo, 10, 1)


        grdLayoutBttom = QGridLayout()
        grdLayoutBttom.setContentsMargins(10, 20, 20, 10)
        spacerItem = QSpacerItem(20, 20)
        grdLayoutBttom.addItem(spacerItem, 1, 1, 1, 1)
        grdLayoutBttom.setSpacing(20)
        # order widget in gridline
        grdLayoutBttom.addWidget(registerBtn, 1, 1)
        grdLayoutBttom.addWidget(qutBtn, 1, 2)

        self.verLayout = QVBoxLayout()
        self.verLayout.addLayout(grdLayoutTop)
        self.verLayout.addLayout(grdLayoutMidTop)
        self.verLayout.addLayout(grdLayoutMidBott)
        self.verLayout.addLayout(grdLayoutBttom)

        self.horizontalRegisterGroupBox.setLayout(self.verLayout)


    def qutRegistForm(self):
        self.destroy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...