Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 7, 2011 14:11:18

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

Доброго дня.
Требуется создать окно авторизации с вводом логина/пароля и в случае совпадения,открытия основного окна программы.
Натолкините,пожалуйста на мысль,не пойму в какую сторону копать.
Спасибо.



Офлайн

#2 Окт. 8, 2011 11:05:53

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

Смотря для чего это нужно и что именно не понятно. Кстати это даже к гуи особо не относится. В общем случае как-так: имеем словарь имя_пользователя : хэш_пароля (md5 или подобное) хранимый в базе/файле. Показываем маленькое окошко с QLineEdit для имени и пароля (изменить echoMode на password чтобы не отображать символы), берем от пароля хэш сравниваем с тем словарем, что у нас есть: если есть такая пара имя:пароль, то запускаем главную форму. Вопросы?



Офлайн

#3 Окт. 8, 2011 21:24:06

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

дык алгоритм и я знаю,не понятно,как это все реализовать на pyqt.Если можно,приведите простой пример



Отредактировано (Окт. 8, 2011 21:25:18)

Офлайн

#4 Окт. 8, 2011 22:03:10

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

Я для этого делал два QWidget-a (форма входа и главное окно) и с помощю функции QMainWindow.setCentralWidget после ввода пароля подставлял в главное окно основной widget.



Отредактировано (Окт. 8, 2011 22:42:48)

Офлайн

#5 Окт. 8, 2011 22:47:15

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

Как после главного окна вызвать виджет понятно,а вот как это сделать перед инициализацией главного окна-нет(

#coding:cp1251
import sys
from PyQt4 import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
add_us = QtGui.QAction(QtGui.QIcon(''), u'Добавить', self)
self.connect(add_us, QtCore.SIGNAL('triggered()'),self.add_users)
menubar = self.menuBar()
users = menubar.addMenu(u'Клиенты')
users.addAction(add_us)

def add_users(self):
fr=QtGui.QWidget(self)
self.layout=QtGui.QGridLayout(fr)
self.layout.setSpacing(10)
name = QtGui.QLabel(u'<H3>Имя</H3>',fr)
ok_button = QtGui.QPushButton(u'Добавить',fr)
name_edit = QtGui.QLineEdit()
self.layout.addWidget(name,1 ,0)
self.layout.addWidget(ok_button,2 ,0)
self.layout.addWidget(name_edit,1 ,1)
self.setCentralWidget(fr)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())



Отредактировано (Окт. 8, 2011 22:48:57)

Офлайн

#6 Окт. 9, 2011 00:43:09

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

вот пример - http://dl.dropbox.com/u/9133112/pass_window.zip
Это оно ?



Офлайн

#7 Окт. 9, 2011 06:31:22

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT форма авторизиции.

Да!!!Спасибо огромное!!!Буду разбираться:)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version