class LoginForm(QMainWindow): def __init__(self, parent=None): super(LoginForm, self).__init__(parent) self.width, self.height = 800, 650 self.crear_interfaz(self.width, self.height) self.checkbox_rememberme.clicked.connect(self.remember_me) self.button_login.clicked.connect(self.logging) # self.div_create.setVisible(False) self.database = Database() """self.label_rememberme.mousePressEvent = self.do_remember def do_remember(self, event): # TDE FIXME: Create another remember_me method for remember me label self.remember_me(event) """ def loading(self): print "loading..." def logging(self): self.valid_fields() def valid_fields(self): username = self.username.text() password = self.password.text() if username == '': self.username.setFocus(True) elif password == '': self.password.setFocus(True) else: self.loading() self.username.setEnabled(False) self.password.setEnabled(False) print "Logging validation username" if self.database.login(username, password): print "Bienvenido %s" % username else: print "Datos incorrectos!" # return True in end of statement def anim_left(self): animation = QPropertyAnimation(self.label_icon, "geometry") animation.setDuration(250) animation.setStartValue(QRect(0, 0, 20, 20)) animation.setEndValue(QRect(20, 0, 20, 20)) animation.start() self.animation = animation def anim_right(self): animation = QPropertyAnimation(self.label_icon, "geometry") animation.setDuration(250) animation.setStartValue(QRect(20, 0, 20, 20)) animation.setEndValue(QRect(0, 0, 20, 20)) animation.start() self.animation = animation def remember_me(self): if self.checkbox_rememberme.isChecked(): self.anim_left() self.label_icon.setGeometry(20, 0, 20, 20) else: self.anim_right() self.label_icon.setGeometry(0, 0, 20, 20) def crear_interfaz(self, width, height): self.setMinimumSize(width, height) self.setMaximumSize(width, height) self.setWindowTitle('I n i c i a s e s i ó n | SN') self.setObjectName('login_form_window') self.container = QWidget(self) self.container.setMinimumSize(width, height) self.container.setMaximumSize(width, height) self.container.setObjectName('login_container') self.title = QLabel(self) self.title.setText('I N I C I A S E S I Ó N G R Á T I S') self.title.setGeometry(210, 130, 400, 40) self.title.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.title.setObjectName('login_title') self.username = QLineEdit(self) self.username.setPlaceholderText('N O M B R E D E U S U A R I O') self.username.setGeometry(260, 230, 300, 40) self.username.setObjectName('login_username') self.username.setAcceptDrops(False) self.password = QLineEdit(self) self.password.setPlaceholderText('C O N T R A S E Ñ A') self.password.setGeometry(260, 290, 300, 40) self.password.setObjectName('login_password') self.password.setEchoMode(QLineEdit.Password) self.checkbox_rememberme = QCheckBox(self) self.checkbox_rememberme.setLayoutDirection(Qt.RightToLeft) self.checkbox_rememberme.setGeometry(260, 360, 40, 20) self.checkbox_rememberme.setObjectName("login_rememberme") self.checkbox_rememberme.setCursor(QCursor(Qt.PointingHandCursor)) self.label_icon = QLabel(self.checkbox_rememberme) self.label_icon.setGeometry(0, 0, 20, 20) self.label_icon.setObjectName("label_icon") self.label_rememberme = QLabel(self) self.label_rememberme.setText("R E C U É R D A M E") self.label_rememberme.setGeometry(310, 360, 165, 20) self.label_rememberme.setObjectName("label_rememberme") self.button_login = QPushButton(self) self.button_login.setGeometry(315, 420, 200, 40) self.button_login.setText("I N I C I A R S E S I Ó N") self.button_login.setObjectName("button_login") self.layout = QGridLayout(self.container)
class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowMinimizeButtonHint) self.setWindowTitle(u"鱿鱼") self.setFixedSize(800, 600) self.setObjectName('principal') self.createGUI() def createGUI(self): self.frame_window = QWidget(self) self.frame_window.setGeometry(0, 0, 800, 40) self.frame_window.setObjectName('frame_window') self.title_frame = QLabel(self.frame_window) self.title_frame.setGeometry(0, 0, 800, 40) self.title_frame.setAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.title_frame.setFont(QFont("微软雅黑", 20, QFont.Bold)) self.title_frame.setText(u" 鱿鱼-阿里云白名单设置") self.title_frame.setObjectName('title_frame') # buttons clsfont = self.font() or QFont() clsfont.setFamily('Webdings') self.button_close = QPushButton('r', self.frame_window, font=clsfont) self.button_close.setGeometry(760, 0, 40, 40) self.button_close.setObjectName('button_close') self.button_close.setToolTip(u'关闭') self.button_close.enterEvent( self.button_close.setCursor(Qt.PointingHandCursor)) self.button_min = QPushButton('0', self.frame_window, font=clsfont) self.button_min.setGeometry(720, 0, 40, 40) self.button_min.setObjectName('button_min') self.button_min.setToolTip(u'最小化') self.button_min.enterEvent( self.button_min.setCursor(Qt.PointingHandCursor)) ###左边选择栏部分 self.GroupBox_checkbox = QGroupBox(self) self.GroupBox_checkbox.setTitle(u'选择白名单组') self.GroupBox_checkbox.setGeometry(10, 50, 200, 540) self.ecs_test = QCheckBox(u'测试环境服务器', self.GroupBox_checkbox) self.ecs_test.enterEvent(self.ecs_test.setCursor( Qt.PointingHandCursor)) self.ecs_test.setChecked(True) self.ecs_test.setGeometry(20, 30, 150, 30) self.rds_mysql = QCheckBox(u'MySQL数据库', self.GroupBox_checkbox) self.rds_mysql.enterEvent( self.rds_mysql.setCursor(Qt.PointingHandCursor)) self.rds_mysql.setChecked(True) self.rds_mysql.setGeometry(20, 60, 150, 30) self.rds_sqlserver = QCheckBox(u'SQLServer数据库', self.GroupBox_checkbox) self.rds_sqlserver.enterEvent( self.rds_sqlserver.setCursor(Qt.PointingHandCursor)) self.rds_sqlserver.setChecked(True) self.rds_sqlserver.setGeometry(20, 90, 150, 30) ###右边IP设置部分 self.GroupBox_ipset = QGroupBox(self) self.GroupBox_ipset.setTitle(u'公网IP配置') self.GroupBox_ipset.setGeometry(220, 50, 570, 200) self.label_outip = QLabel(self.GroupBox_ipset, objectName="label_outip") self.label_outip.setText(u'公网IP:') self.label_outip.setGeometry(15, 30, 75, 30) self.line_outip = QLineEdit(self.GroupBox_ipset) self.line_outip.setMinimumWidth(200) self.line_outip.setGeometry(85, 30, 150, 30) self.line_outip.setFont(QFont("Timers", 13, QFont.Bold)) self.line_outip.setStyleSheet("color:green") self.button_getip = QPushButton(u'自动获取公网IP', self.GroupBox_ipset, objectName="button_getip") self.button_getip.setToolTip(u'从ip138上抓取本机公网IP') self.button_getip.enterEvent( self.button_getip.setCursor(Qt.PointingHandCursor)) self.button_getip.setGeometry(300, 30, 110, 30) self.button_setup = QPushButton(u'添加', self.GroupBox_ipset, objectName="button_setup") self.button_setup.enterEvent( self.button_setup.setCursor(Qt.PointingHandCursor)) self.button_setup.setToolTip(u'将该IP添加至已选白名单组中') self.button_setup.setGeometry(430, 30, 110, 30) ###右边消息输出部分 self.GroupBox_text = QGroupBox(self) self.GroupBox_text.setGeometry(220, 260, 570, 330) self.browser_text = QTextBrowser(self.GroupBox_text) self.browser_text.setGeometry(0, 0, 570, 330) self.browser_text.setFont(QFont("Roman times", 12)) self.browser_text.setObjectName('browser_text') # conexiones self.button_close.clicked.connect(self.close) self.button_min.clicked.connect(self.showMinimized) self.button_getip.clicked.connect(self.auto_ip) self.button_setup.clicked.connect(self.setup) def auto_ip(self): self.line_outip.clear() self.button_getip.setEnabled(False) self.th_get_ip = GETIP() self.th_get_ip.ip_line_Signal.connect(self.show_ip_info) self.th_get_ip.start() def show_ip_info(self, ip=None, status=1): self.button_getip.setEnabled(True) if status: self.line_outip.setText(ip) else: self.browser_text.append(ip) def setup(self): myip = self.line_outip.text() if myip and validate_ip(myip): check_list = [] if self.ecs_test.isChecked(): check_list.append('ecs_test') if self.rds_mysql.isChecked(): check_list.append('rds_mysql') if self.rds_sqlserver.isChecked(): check_list.append('rds_sqlserver') if len(check_list) == 0: self.browser_text.append(u'没什么事可做的~') else: self.button_setup.setEnabled(False) self.th_setup = SETIP(myip, check_list) self.th_setup.text_browser_Signal.connect(self.show_text) self.th_setup.start() else: self.browser_text.append(u'请填入正确的IP地址!') def show_text(self, text=None, end=0): if end: self.button_setup.setEnabled(True) if text: self.browser_text.append(text) def mousePressEvent(self, event): self.offset = event.pos() def mouseMoveEvent(self, event): x = event.globalX() y = event.globalY() x_w = self.offset.x() y_w = self.offset.y() self.move(x - x_w, y - y_w)