アプリケーションの起動時に何らかの種類のログインフォームを実装できるかどうか尋ねられたときに、私はほとんどアプリケーションを終了しました。ログインダイアログPyQt
これまでのところ、私はUIを設計し、実際の実行については触れませんでした。ユーザー名とパスワードは今のところ無関係です。
class Login(QtGui.QDialog):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_dlgLogovanje()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.buttonLogin, QtCore.SIGNAL("clicked()"), self.doLogin)
def doLogin(self):
name = str(self.ui.lineKorisnik.text())
passwd = str(self.ui.lineSifra.text())
if name == "john" and passwd =="doe":
self.runIt()
else:
QtGui.QMessageBox.warning(self, 'Greška',
"Bad user or password", QtGui.QMessageBox.Ok)
def runIt(self):
myprogram = Window()
myprogram.showMaximized() #myprogram is
class Window(QtGui.QMainWindow):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
if __name__=="__main__":
program = QtGui.QApplication(sys.argv)
myprogram = Window()
if Login().exec_() == QtGui.QDialog.Accepted:
sys.exit(program.exec_())
ログインフォームが表示されます。正しいユーザー名とパスワードを入力すると、メインウィンドウが表示され、動作します。しかし、ログインフォームはアクティブのままで、閉じるとメインウィンドウも閉じます。
ところで、 'QtCore.QObject.connect(self.ui2.buttonLogin、QtCore.SIGNAL( ")(クリック")、self.doLogin)は' '自己に置き換えることができます.ui2.buttonLogin.clicked.connect(self.doLogin) ' – warvariuc