Найти - Пользователи
Полная версия: PyQT форма авторизиции.
Начало » GUI » PyQT форма авторизиции.
1
denmariupol
Доброго дня.
Требуется создать окно авторизации с вводом логина/пароля и в случае совпадения,открытия основного окна программы.
Натолкините,пожалуйста на мысль,не пойму в какую сторону копать.
Спасибо.
dartNNN
Смотря для чего это нужно и что именно не понятно. Кстати это даже к гуи особо не относится. В общем случае как-так: имеем словарь имя_пользователя : хэш_пароля (md5 или подобное) хранимый в базе/файле. Показываем маленькое окошко с QLineEdit для имени и пароля (изменить echoMode на password чтобы не отображать символы), берем от пароля хэш сравниваем с тем словарем, что у нас есть: если есть такая пара имя:пароль, то запускаем главную форму. Вопросы?
denmariupol
дык алгоритм и я знаю,не понятно,как это все реализовать на pyqt.Если можно,приведите простой пример
mks
Я для этого делал два QWidget-a (форма входа и главное окно) и с помощю функции QMainWindow.setCentralWidget после ввода пароля подставлял в главное окно основной widget.
denmariupol
Как после главного окна вызвать виджет понятно,а вот как это сделать перед инициализацией главного окна-нет(
#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_())
mks
вот пример - http://dl.dropbox.com/u/9133112/pass_window.zip
Это оно ?
denmariupol
Да!!!Спасибо огромное!!!Буду разбираться:)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB