все первый класс из основного файла и отображение окна, а затем при вызове 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()