如何在没有按钮单击pythontkinter的情况下进入另一个页面(代码片段)

author author     2022-12-27     719

关键词:

所以,我正在使用tkinter在python中创建一个登录系统,我希望它在验证了电子邮件和密码后移动到另一个页面。我发现这样做的唯一方法是使用按钮单击命令。我只希望在验证电子邮件和密码后转到下一页。提前致谢。

    from tkinter import *


    class login:

        def __init__(self, master, *args, **kwargs):

            self.emailGranted = False
            self.passwordGranted = False

            self.attempts = 8

            self.label_email = Label(text="email:", font=('Serif', 13))
            self.label_email.grid(row=0, column=0, sticky=E)

            self.label_password = Label(text="password:", font=('Serif', 13))
            self.label_password.grid(row=1, column=0, sticky=E)

            self.entry_email = Entry(width=30)
            self.entry_email.grid(row=0, column=1, padx=(3, 10))

            self.entry_password = Entry(width=30, show="•")
            self.entry_password.grid(row=1, column=1, padx=(3, 10))

            self.login = Button(text="Login", command=self.validate)
            self.login.grid(row=2, column=1, sticky=E, padx=(0, 10), pady=(2, 2))

            self.label_granted = Label(text="")
            self.label_granted.grid(row=3, columnspan=3, sticky=N+E+S+W)

        def validate(self):

            self.email = self.entry_email.get()
            self.password = self.entry_password.get()

            if self.email == "email":
                self.emailGranted = True

            else:
                self.emailGranted = False
                self.label_granted.config(text="wrong email")
                self.attempts -= 1
                self.entry_email.delete(0, END)
                if self.attempts == 0:
                    root.destroy()

            if self.password == "password":
                self.passwordGranted = True

            else:
                self.passwordGranted = False
                self.label_granted.config(text="wrong password")
                self.attempts -= 1
                self.entry_password.delete(0, END)
                if self.attempts == 0:
                    root.destroy()

            if self.emailGranted is False and self.passwordGranted is False:
                self.label_granted.config(text="wrong email and password")

            if self.emailGranted is True and self.passwordGranted is True:
                self.label_granted.config(text="access granted")
                // I want it to move on to PageOne here but I'm not sure how

    class PageOne:

        def __init__(self, master, *args, **kwargs):

            Button(text="it works").grid(row=0, column=0)

    if __name__ == "__main__":

        root = Tk()
        root.resizable(False, False)
        root.title("login")
        login(root)
        root.mainloop()
答案

如果你想这样做,一旦有一个有效的电子邮件它就会继续运行,那么你想让一个函数获得一个参数(电子邮件)并返回一个布尔值(True或False)。要做到这一点,你需要这样做:

def function(email):
   return email == <something>

为了让它在键入时反复检查,可以在循环中使用root.update()而不是root.mainloop(),这样你就可以这样做:

while function(entryWidget.get()):
   #all the configs for text
   root.update()
#let them to the next page

这有用吗?

另一答案

我没有使用过tkinter,但是移动到新页面就像是一个动作。并且在事件发生时执行操作。在您的情况下,事件是在电子邮件和密码通过验证之后。因此,您需要在验证成功后添加逻辑以移至新页面。

BTW为什么要这样做?为什么不让用户按下按钮呢?

允许用户在没有 Javascript 的情况下取消单击单选按钮

】允许用户在没有Javascript的情况下取消单击单选按钮【英文标题】:AllowusertocancelclickonaradiobuttonwithoutJavascript【发布时间】:2013-05-0522:49:46【问题描述】:有没有办法让用户取消对单选按钮的点击?最好不要使用jQuery甚至Javascrip... 查看详情

按钮点击后,pythontkinter在框架中显示文本(代码片段)

作为一个Python新手,我试图用tkinter创建一个应用程序。我用下拉菜单制作了一个窗口。现在,我希望实现这一点,当您从下拉菜单中单击按钮时,文本将显示在右侧框架中或底部。接下来,当您按下下一个按钮时,屏幕上将显... 查看详情

pythontkinter如何设置组件在窗口中的位置,比如说一个按钮,我希望这个按钮在窗口的左边,上边………

这个跟编码方式有关,加上#-*-coding:utf8-*-就能显示中文啦self.Button(self.trspt_frm,\text='发送文件',\command=self.send_file,\).pack(side=Tkinter.LEFT,fill=Tkinter.BOTH)在pack里设置参数,就可以设置按钮的位置啦参考技术A可以使用place(... 查看详情

如何在没有单独的单击事件处理程序的情况下处理多个表单提交 [关闭]

】如何在没有单独的单击事件处理程序的情况下处理多个表单提交[关闭]【英文标题】:Howtohandlemultipleformsubmitswithoutindividualclickeventhandlers[closed]【发布时间】:2018-05-0611:39:41【问题描述】:我的mvc应用程序中有两个表单,所有表... 查看详情

如何在没有编码的情况下使用按钮在android中打开另一个活动

】如何在没有编码的情况下使用按钮在android中打开另一个活动【英文标题】:howtoopenanotheractivityinandroidusingabuttonwithoutcodding【发布时间】:2017-08-3019:51:04【问题描述】:如何在一个活动中订购一个按钮来打开另一个活动,而不是... 查看详情

如何在没有 App.vue 的情况下进行组件渲染

】如何在没有App.vue的情况下进行组件渲染【英文标题】:HowcanihavecomponentrenderwithoutApp.vue【发布时间】:2021-10-2814:18:47【问题描述】:我正在尝试将vue-cli用于应用程序,但我想知道我可以在不使用App.vue的情况下使用组件吗?这... 查看详情

如何在自动完成文本框中没有按钮的情况下回发?

】如何在自动完成文本框中没有按钮的情况下回发?【英文标题】:Howtopostbackwithoutabuttoninanautocompletetextbox?【发布时间】:2015-11-3023:48:37【问题描述】:我将文本框绑定到DB,但是当我单击自动完成文本框中的名称并且在文本框... 查看详情

如何在不单击按钮的情况下运行 onCreate() 中的方法

】如何在不单击按钮的情况下运行onCreate()中的方法【英文标题】:HowtorunmethodsinonCreate()withoutbuttonclick【发布时间】:2021-09-0118:37:21【问题描述】:现在,当我的应用启动时,我必须单击该按钮两次才能显示数据。我想要打开显... 查看详情

在 Python Tkinter 中按下按钮后如何清除窗口?

】在PythonTkinter中按下按钮后如何清除窗口?【英文标题】:HowdoiclearawindowafterpressingabuttoninPythonTkinter?【发布时间】:2018-09-1918:18:56【问题描述】:我目前正在用pythontkinter为孩子们创建一个数学测验。在这个测验中,我有3个不同... 查看详情

在 iOS/Android/Facebook/Twitter 政策中,是不是可以在没有用户单击登录按钮的情况下自动登录用户?

】在iOS/Android/Facebook/Twitter政策中,是不是可以在没有用户单击登录按钮的情况下自动登录用户?【英文标题】:IniOS/Android/Facebook/Twitterpolicyisitoktoautologintheuserwithouthaveusertoclicktheloginbutton?在iOS/Android/Facebook/Twitter政策中,是否可以... 查看详情

如何在不单击后退按钮的情况下隐藏键盘[重复]

】如何在不单击后退按钮的情况下隐藏键盘[重复]【英文标题】:HowtohideKeypadwithoutClickingBackButton[duplicate]【发布时间】:2017-09-2016:28:27【问题描述】:我在我的应用程序中使用了一个编辑文本,一旦我完成了键盘想要自动隐藏而... 查看详情

如何在没有 Artisan 的情况下在 Xampp 上运行 laravel

】如何在没有Artisan的情况下在Xampp上运行laravel【英文标题】:HowtorunlaravelonXamppwithoutArtisan【发布时间】:2021-08-2323:38:54【问题描述】:我在我有PHP文件的项目中使用Xampp。我有另一个laravel项目,当用户单击PHP文件中的按钮时,... 查看详情

根据在python tkinter中单击的检查按钮执行项目价格?

】根据在pythontkinter中单击的检查按钮执行项目价格?【英文标题】:Executingpriceofitemsdependingonwhatcheckbuttonisclickedoninpythontkinter?【发布时间】:2022-01-1322:12:31【问题描述】:Imageofproject我目前正在为我的大学班级创建一个gui,以检... 查看详情

如何在单击 TextView 时像单击按钮一样突出显示它

】如何在单击TextView时像单击按钮一样突出显示它【英文标题】:HowtohighlightaTextViewwhenyouclickonitjustlikewhenyouclickonaButton【发布时间】:2022-01-1411:12:39【问题描述】:默认情况下,当您单击按钮时,它会突出显示。当用户点击TextView... 查看详情

如何在不单击“下一步”按钮的情况下以重力形式进入下一页

】如何在不单击“下一步”按钮的情况下以重力形式进入下一页【英文标题】:Howtogoonnextpageingravityformwithoutclickon"next"button【发布时间】:2017-08-2704:33:37【问题描述】:我以“重力形式”创建了一个多页调查表。默认情况... 查看详情

在反应类组件中,为啥在按钮单击的第一个实例中状态没有改变?但在第二种情况下,它会更新吗?

】在反应类组件中,为啥在按钮单击的第一个实例中状态没有改变?但在第二种情况下,它会更新吗?【英文标题】:Inreactclasscomponentwhyisthestatenotbeingchangedinthefirstinstanceofbuttonclick?Butinthesecondinstanceitgetsupdated?在反应类组件中,为... 查看详情

如何在不单击引导程序或 php 中的按钮的情况下在右上角加载通知警报?

】如何在不单击引导程序或php中的按钮的情况下在右上角加载通知警报?【英文标题】:Howtoloadnotificationalertontoprightcornerwithoutclickofbuttoninbootstraporphp?【发布时间】:2019-10-2813:49:17【问题描述】:当用户按下或单击按钮时,我已... 查看详情

如何在不刷新的情况下提交表单?

】如何在不刷新的情况下提交表单?【英文标题】:Howtosubmitformwithoutrefreshing?【发布时间】:2019-12-2107:48:55【问题描述】:单击结束按钮将表单提交到数据库后,我正在尝试删除刷新时间。我在jquery方面没有那么有经验,目前我... 查看详情