python3.5 tkinter实现页面跳转


Posted in Python onJanuary 30, 2018

本文实例为大家分享了tkinter实现页面跳转的具体代码,供大家参考,具体内容如下

主函数main.py

from tkinter import * 
from LoginPage import * 
 
root = Tk() 
root.title('小程序') 
LoginPage(root) 
root.mainloop()

登陆界面函数LoginPage.py

from tkinter import * 
from tkinter.messagebox import * 
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): 
  name = self.username.get() 
  secret = self.password.get() 
  if name=='wangliang' and secret=='123456': 
   self.page.destroy() 
   MainPage(self.root) 
  else: 
   showinfo(title='错误', message='账号或密码错误!')

主界面函数MainPage.py

from tkinter import * 
from view import * #菜单栏对应的各个子页面 
 
class MainPage(object): 
 def __init__(self, master=None): 
  self.root = master #定义内部变量root 
  self.root.geometry('%dx%d' % (600, 400)) #设置窗口大小 
  self.createPage() 
 
 def createPage(self): 
  self.inputPage = InputFrame(self.root) # 创建不同Frame 
  self.queryPage = QueryFrame(self.root) 
  self.countPage = CountFrame(self.root) 
  self.aboutPage = AboutFrame(self.root) 
  self.inputPage.pack() #默认显示数据录入界面 
  menubar = Menu(self.root) 
  menubar.add_command(label='数据录入', command = self.inputData) 
  menubar.add_command(label='查询', command = self.queryData) 
  menubar.add_command(label='统计', command = self.countData) 
  menubar.add_command(label='关于', command = self.aboutDisp) 
  self.root['menu'] = menubar # 设置菜单栏 
 
 def inputData(self): 
  self.inputPage.pack() 
  self.queryPage.pack_forget() 
  self.countPage.pack_forget() 
  self.aboutPage.pack_forget() 
 
 def queryData(self): 
  self.inputPage.pack_forget() 
  self.queryPage.pack() 
  self.countPage.pack_forget() 
  self.aboutPage.pack_forget() 
 
 def countData(self): 
  self.inputPage.pack_forget() 
  self.queryPage.pack_forget() 
  self.countPage.pack() 
  self.aboutPage.pack_forget() 
 
 def aboutDisp(self): 
  self.inputPage.pack_forget() 
  self.queryPage.pack_forget() 
  self.countPage.pack_forget() 
  self.aboutPage.pack()

子界面函数view,py

from tkinter import * 
from tkinter.messagebox import * 
 
class InputFrame(Frame): # 继承Frame类 
 def __init__(self, master=None): 
  Frame.__init__(self, master) 
  self.root = master #定义内部变量root 
  self.itemName = StringVar() 
  self.importPrice = StringVar() 
  self.sellPrice = StringVar() 
  self.deductPrice = StringVar() 
  self.createPage() 
 
 def createPage(self): 
  Label(self).grid(row=0, stick=W, pady=10) 
  Label(self, text = '药品名称: ').grid(row=1, stick=W, pady=10) 
  Entry(self, textvariable=self.itemName).grid(row=1, column=1, stick=E) 
  Label(self, text = '进价 /元: ').grid(row=2, stick=W, pady=10) 
  Entry(self, textvariable=self.importPrice).grid(row=2, column=1, stick=E) 
  Label(self, text = '售价 /元: ').grid(row=3, stick=W, pady=10) 
  Entry(self, textvariable=self.sellPrice).grid(row=3, column=1, stick=E) 
  Label(self, text = '优惠 /元: ').grid(row=4, stick=W, pady=10) 
  Entry(self, textvariable=self.deductPrice).grid(row=4, column=1, stick=E) 
  Button(self, text='录入').grid(row=6, column=1, stick=E, pady=10) 
 
 
class QueryFrame(Frame): # 继承Frame类 
 def __init__(self, master=None): 
  Frame.__init__(self, master) 
  self.root = master #定义内部变量root 
  self.itemName = StringVar() 
  self.createPage() 
 
 def createPage(self): 
  Label(self, text='查询界面').pack() 
 
class CountFrame(Frame): # 继承Frame类 
 def __init__(self, master=None): 
  Frame.__init__(self, master) 
  self.root = master #定义内部变量root 
  self.createPage() 
 
 def createPage(self): 
  Label(self, text='统计界面').pack() 
 
 
class AboutFrame(Frame): # 继承Frame类 
 def __init__(self, master=None): 
  Frame.__init__(self, master) 
  self.root = master #定义内部变量root 
  self.createPage() 
 
 def createPage(self): 
  Label(self, text='关于界面').pack()

效果图:

python3.5 tkinter实现页面跳转

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python设计模式之代理模式实例
Apr 26 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
python中defaultdict的用法详解
Jun 07 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
python实现定时提取实时日志程序
Jun 22 Python
python requests.post带head和body的实例
Jan 02 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
Python Pandas数据中对时间的操作
Jul 30 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
python中复数的共轭复数知识点总结
Dec 06 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 Python
python 连接各类主流数据库的实例代码
Jan 30 #Python
python操作oracle的完整教程分享
Jan 30 #Python
Python使用wxPython实现计算器
Jan 30 #Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 #Python
python实现简易版计算器
Jun 22 #Python
python列表的增删改查实例代码
Jan 30 #Python
Python+tkinter使用40行代码实现计算器功能
Jan 30 #Python
You might like
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
2017/11/17 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
wxPython:python首选的GUI库实例分享
2019/10/05 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
法国珠宝店:CLEOR
2017/01/29 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
自行车广告词大全
2014/03/21 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
营销经理工作检讨书
2014/11/03 职场文书
村干部任职承诺书
2015/01/21 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
医院病假条范文
2015/08/17 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Python语言规范之Pylint的详细用法
2021/06/24 Python
教你一步步实现一个简易promise
2021/11/02 Javascript
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript