python3.5 tkinter实现页面跳转

本文实例为大家分享了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()

效果图:

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

您可能感兴趣的文章:

  • Python编写简单的HTML页面合并脚本
(0)

相关推荐

  • Python编写简单的HTML页面合并脚本

    最近写一个BootStrap页面...因为功能需要所以决定一个页面解决所有问题,然后用jQuery来动态显示功能....然而这样做的话页面会相当庞大,一堆隐藏模态窗口和功能div都堆在一起看起来挺难受的 然后想了下就用Python写了个小脚本用来支持<include>标签,用处是合并外部html文件,来强行分文件编写单个庞大的HTML页面 用了下感觉挺好用的,分享给大家 使用方法: HTML中使用<include src="">标签来导入其他HTML代码.支持嵌

  • python3.5 tkinter实现页面跳转

    本文实例为大家分享了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 i

  • angularjs项目的页面跳转如何实现(5种方法)

    Angular页面传参有多种办法,根据不同用例,我举5种最常见的: PS: 在实际项目中,请参照https://github.com/johnpapa/angular-styleguide优化您的代码. 1. 基于ui-router的页面跳转传参 (1) 在AngularJS的app.js中用ui-router定义路由,比如现在有两个页面,一个页面(producers.html)放置了多个producers,点击其中一个目标,页面跳转到对应的producer页,同时将producerId这个参数

  • AngularJS路由实现页面跳转实例

    AngularJS是一个javascript框架,通过AngularJS这个类库可以实现目前比较流行的单页面应用,AngularJS还具有双向数据绑定的特点,更加适应页面动态内容. 所谓单页面应用就是在同一个页面动态加载不同的内容,而这里的"跳转"可以理解为是局部页面的跳转. AngularJS是通过改变location地址来实现加载不同的页面内容到指定位置,下面是一个简单应用AngularJS路由来实现页面"跳转"的实例: 使用app.config来定义不同的lo

  • iOS开发中ViewController的页面跳转和弹出模态

    ViewController 页面跳转 从一个Controller跳转到另一个Controller时,一般有以下2种: 1.利用UINavigationController,调用pushViewController,进行跳转:这种采用压栈和出栈的方式,进行Controller的管理.调用popViewControllerAnimated方法可以返回. 复制代码 代码如下: PickImageViewController *ickImageViewController = [[PickImageV

  • iOS应用开发中实现页面跳转的简单方法笔记

    作为新手写的笔记,方便自己记忆: 从android转过来iOS的,对于页面的跳转,找了很多资料,现在记录一下页面跳转的方法. 1.用navigationController 2.直接跳(刚刚在网上找到的,不太熟,有错莫怪) 1.建一个RootViewController,在delegate.h 复制代码 代码如下: @property (strong, nonatomic) UIViewController *viewController; @property (strong, nonatomi

  • ReactNative页面跳转实例代码

    效果图如下所示: 进入工作目录,运行 react-native init NavigatorProject 创建项目NavigatorProject import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, TouchableHighlight, Image, Navigator } from 'react-native'; class navigatorProject exte

  • 三种asp.net页面跳转的方法

    第一种方法:response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但它可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护.但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端.需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session. 代码如下  using System; using Syst

  • php 不使用js实现页面跳转

    在页面跳转的时候 一般使用都是js window.location.href 当然也可以使用 复制代码 代码如下: <html> <head> <meta http-equiv="refresh" content="0;url=http://www.baidu.com"> <title></title> </head> <body> </body> </html&g

  • ajax 提交数据到后台jsp页面及页面跳转问题

    ajax 提交数据到后台jsp页面及页面跳转问题 我logincheck.jsp页面取传参数代码: String user=request.getParameter("user1"); String pwd=request.getParameter("pwd1"); login.jsp input 取2参数何用ajax 传给logincheck.jsp $.ajax({ type : "POST", url : baseUrl+"m/m

  • JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

    但有时候,需要当某事件触发时,我们先做一些操作,然后再跳转,这时,就要用JAVASCRIPT来实现这一跳转功能. 下面是具体的做法: 一:跳转到新页面,并且是在新窗口中打开时: 复制代码 代码如下: function gogogo() { //do someghing here... window.open("test2.html"); } window是一个javascript对象,可以用它的open方法,需要注意的是,如果这个页面不是一相相对路径,那么要加http://,比如: 复

随机推荐