当前位置:   article > 正文

日常学习记录——tkinter界面跳转遇到的问题

tkinter界面跳转

1 try except

try:
	...
except Exception as e:
	print('登录异常')
  • 1
  • 2
  • 3
  • 4

因为加入了异常捕获语句try except,所以稍微一遇到点错就直接宕机了,导致没有办法很好地定位问题。

2 制表位引起的问题

去掉 try…except异常捕获语句以后,发现了这个报错:
self.createPage() AttributeError: ‘MainPage’ object has no attribute ‘createPage’
参考博客:python易错点 | AttributeError: ‘xxxx’ object has no attribute ‘xxxx’

3 运行结果

  • 登陆成功

登陆成功

  • 页面跳转

页面跳转1

  • 统计页面

跳转页面2

4 运行代码

参考的是这篇文章:tkinter实现页面跳转

主要修改了登录页的代码,即loginPage.py这个模块,修改后代码如下:

from tkinter.messagebox import *
import pymysql
from MainPage import *


class LoginPage(object):
    def __init__(self, master=None):
        self.root = master  # 定义内部变量root
        self.root.geometry('%dx%d' % (300, 180))  # 设置窗口大小
        self.username = StringVar()
        self.password = StringVar()
        self.createPage()

    def createPage(self):
        self.page = Frame(self.root)  # 创建Frame
        self.page.pack()
        Label(self.page).grid(row=0, stick=W)
        Label(self.page, text='账户:').grid(row=1, stick=W, pady=10)
        Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=E)
        Label(self.page, text='密码:').grid(row=2, stick=W, pady=10)
        Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E)
        Button(self.page, text='登录', command=self.loginCheck).grid(row=3, stick=W, pady=10)
        Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=E)

    def loginCheck(self):
        entry_uname = self.username.get()
        entry_psw = self.password.get()

        db = pymysql.connect(host='localhost', user='root', password='123456', database='MyDB_one', port=3306)
        cur = db.cursor()  # 获取操作游标
        sql = 'SELECT * FROM user_login'
        flag = True
        try:
            cur.execute(sql)  # 对用户数据表进行查询
            results = cur.fetchall()  # 获取所有查询数据
            for row in results:
                db_username = row[0]  # 用户名
                db_password = row[1]  # 密码
                # 判断输入的用户名和密码是否匹配
                if db_username == entry_uname and db_password == entry_psw:
                    print('登陆成功')
                    db_username = row[0]
                    self.success_tip(db_username)
                    flag = True
                    break
                else:
                    flag = False
            if flag == False:
                self.fail_tip()
        except Exception as e:
            print('登录异常')

    def success_tip(self, username):
        showinfo(title='消息提示框', message=username + '登录成功')
        self.page.destroy()
        MainPage(self.root)
        # self.root.mainloop()

    def fail_tip(self):
        showerror(title='错误消息框', message='用户名或密码错误')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

总结

今天主要是简单实现了界面跳转,现在我可能更想要的是一个可以自动录入一些表格数据并可以显示出来的查询界面,如可以将西瓜数据集可以手动录入,也可以通过excel文件导入的那种。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/761195
推荐阅读
相关标签
  

闽ICP备14008679号