python中将不同界面以frame框架结合成一个集合体

本文介绍了如何使用Python的Tkinter库创建GUI界面,并结合Selenium实现网页登录功能。通过创建多个Frame,实现了界面的模块化,包括登录界面、主页面等,用户可以进行登录、切换不同功能区。同时,代码中还涉及到了HTTP请求、数据交互和消息提示等功能。
摘要由CSDN通过智能技术生成

from tkinter import *
from selenium import webdriver
import tkinter as tk
from tkinter import scrolledtext,messagebox
from time import sleep
from tkinter import ttk
import xlrd
import requests
import json
import qrcode
def jiemian_info():
    ws = jiemian.winfo_screenwidth()
    hs = jiemian.winfo_screenheight()
    x = (ws / 2) - 200
    y = (hs / 2) - 200
    print("%d,%d" % (ws, hs))
    return x, y
jiemian = Tk()
jiemian.title("测试装备")
a, b = jiemian_info()
# jiemian.geometry("800x600+%d+%d" % (a, b))
class login(object):
    def __init__(self, master=None):
        self.root = master  # 定义内部变量root
        self.root.geometry("300x150+%d+%d" % (a, b)) # 设置窗口大小
        self.urll = 'http://192.168.18.38:8073/login'
        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=0, column=0, stick=E,pady=10)
        Label(self.page, text="账号:").grid(row=1, column=0, stick=E)
        '''设置文本框'''
        self.url = Entry(self.page, font=('微软雅黑', 10), width=15)
        self.url.grid(row=0, column=1, stick=E,pady=10)
        # var_pwd = StringVar()
        self.pwd = Entry(self.page, font=('微软雅黑', 10), width=15)
        self.pwd.grid(row=1, column=1, stick=E)
        '''设置按钮'''
        Button(self.page, text="登录", width=10, command=self.button1).grid(row=2, column=1, stick=W+E,pady=10)
    def button1(self):
        datain = {'SJH': self.url.get(), 'PWD': self.pwd.get()}
        # num = int(url.get())
        # print(type(num))
        # print(datain)
        m = requests.get(url=self.urll, data=datain)
        # print(m.text)
        # print(type(eval(m.text)))
        msg = eval(m.text)
        if msg['msg_code'] == '200':
            messagebox.showinfo('提示', '成功登录')
            self.page.destroy()
            mainpage(self.root)
        elif msg['msg_code'] == '204':
            messagebox.showinfo('提示', '密码和用户名错误')
            self.page.pack()
class mainpage(object):
    def __init__(self, master=None):
        self.root= master  # 定义内部变量root
        self.root.geometry("800x600+%d+%d" % (a, b))
        self.createPage()
    def createPage(self):
        self.inputPage = InputFrame(self.root)  # 创建不同Frame
        self.queryPage = QueryFrame(self.root)
        self.dingcanpage = dingcanFrame(self.root)
        self.jiekoupage = jiekouFrame(self.root)
        self.erweima = EWMFrame(self.root)
        self.inputPage.pack()  # 默认显示数据录入界面
        menubar = Menu(jiemian)
        fmenu1 = Menu(jiemian, tearoff=0)
        fmenu2 = Menu(jiemian, tearoff=0)
        for item in ['网站', '构建','接口', '生成二维码','订餐']:
            if item == '网站':
                fmenu1.add_command(label=item,command=self.inputData)
                fmenu1.add_separator()
            elif item == '构建':
                fmenu1.add_command(label=item,command=self.queryData)
                """添加横线"""
                fmenu1.add_separator()
            elif item =='接口':
                fmenu1.add_command(label=item,command=self.jiekou)
                """添加横线"""
                fmenu1.add_separator()
            elif item =='生成二维码':
                fmenu1.add_command(label=item,command=self.erweim)
                """添加横线"""
                fmenu1.add_separator()
            else:
                fmenu1.add_command(label=item,command=self.dingcan)
        for item in ['帮助','退出']:
            fmenu2.add_command(label=item, command=self.tuchu)
            if item != '退出':
                """添加横线"""
                fmenu2.add_separator()
        menubar.add_cascade(label="选项",menu=fmenu1)
        menubar.add_cascade(label="操作",menu=fmenu2)
        self.root['menu'] = menubar
    def inputData(self):
        self.inputPage.pack()
        self.qu

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值