首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法从gui tkinter文本框中获取值

无法从gui tkinter文本框中获取值
EN

Stack Overflow用户
提问于 2018-03-12 19:06:27
回答 1查看 330关注 0票数 0

_Recommendation_by_food.py

代码语言:javascript
运行
AI代码解释
复制
'''

Created on Feb 24, 2018

@author: Harshit Sinha
'''
import pandas as pd
import os
import Tkinter as tk
from Tkinter import *
import _tkinter
from pygments.lexers._vim_builtins import command

#from _MainScreen import B1

win = tk.Tk()
#win.update()
win.title("RECOMMENDER SYSTEM FOR FOODS")
win.geometry('500x500')


#name = StringVar()
'''
id = tk.StringVar()
Food1 = tk.StringVar()
Food1_rating = tk.StringVar()
'''

class initialize_screen(tk.Tk):
##################user inputs


    ## User_name
    def __init__(self):
        tk.Tk.__init__(self)
    def _draw_screen(self):
        self.User_Name_Label=tk.Label(self,text="User Name :").grid(column=0, row=0)

        self.name = tk.StringVar()
        Entry(self,width=12,textvariable=self.name).grid(column=1, row=0)


        ## User_id
        self.User_id_Label=tk.Label(self, text="User id :").grid(column=0, row=1)


        self.id = tk.StringVar()
        self.User_id_Input=tk.Entry(self,width=12,textvariable=self.id).grid(column=1, row=1)

        ## Food1
        self.Food1_Label=tk.Label(self, text="Food1 :").grid(column=0, row=2)


        self.Food1 = tk.StringVar()
        self.Food1_Input=tk.Entry(self,width=12,textvariable=self.Food1).grid(column=1, row=2)

        ## Food1_rating
        self.Food1_rating_Label=tk.Label(self, text="Rating :").grid(column=2, row=2)


        self.Food1_rating = tk.StringVar()
        self.Food1_rating_Input=tk.Entry(self,width=12,textvariable=self.Food1_rating).grid(column=3, row=2)

        ## Food2
        self.Food2_Label=tk.Label(self, text="Food2 :").grid(column=0, row=3)


        Food2 = tk.StringVar()
        self.Food2_Input=tk.Entry(self,width=12,textvariable=Food2).grid(column=1, row=3)

         ## Food2_rating
        self.Food2_rating_Label=tk.Label(self, text="Rating :").grid(column=2, row=3)


        self.Food2_rating = tk.StringVar()
        self.Food2_rating_Input=tk.Entry(self,width=12,textvariable=self.Food2_rating).grid(column=3, row=3)


        ## Food3
        self.Food3_Label=tk.Label(self,text="Food3 :").grid(column=0, row=4)


        self.Food3 = tk.StringVar()
        self.Food3_Input=tk.Entry(self,width=12,textvariable=self.Food3).grid(column=1, row=4)


         ## Food3_rating
        self.Food3_rating_Label=tk.Label(self, text="Rating :").grid(column=2, row=4)


        self.Food3_rating = tk.StringVar()
        self.Food3_rating_Input=tk.Entry(self,width=12,textvariable=self.Food3_rating).grid(column=3, row=4)


        ##submit button
        self.submit = Button(self, text="Submit",command=self.print_val).grid(column=0,row=5)

        ##reset button
        self.reset = tk.Button(self, text="Reset").grid(column=1, row=5)

#        win.resizable(0, 0)
#        self.User_Name_Input.focus()
#        win.mainloop()
        print(self.name.get())


    def print_val(self):
#        global name,id,Food1,Food1_rating

        print('hi')
        name1 = self.name.get()
        print(str(name1))
#        print(self.Food1.get())
#        print(self.Food1_rating.get())
#        print(self.Food2_Input.get())
#        print(self.Food2_rating_Input.get())
#        print(self.Food3_Input.get())
#        print(self.Food3_rating_Input.get())

_MainScreen.py

代码语言:javascript
运行
AI代码解释
复制
'''
Created on Feb 24, 2018

@author: Harshit Sinha
'''
import pandas as pd
import os
import Tkinter as tk
import _tkinter


#bring up MainScreen
import _Recommendation_by_food as fd
from _Recommendation_by_food import *


def call_screen_1():
    fd=initialize_screen()
    fd._draw_screen()
#    fd.__init__()

LARGE_FONT= ("Verdana", 12)

B1 = tk.Button(win,text ="Recommendation By Food",width=30, command=call_screen_1)
#B2 = tk.Button(win,text ="Recommendation By Ingredients",width=30,command= call_screen_2)
#B3 = tk.Button(win,text ="Recommendation By Nutrition",width=30,command= call_screen_3)

B1.pack()
#B2.pack()
#B3.pack()

#win.resizable(0, 0)

win.mainloop()

我正在用python做机器学习的POC,并且在一个问题上陷入困境。我正在使用tkinter库来开发gui,如您所见,我在上面给出了两个代码片段

  1. _MainScreen.py
  2. _Recommendation_by_food.py

当程序执行时,它调用具有按钮的_MainScreen.py,因此如果用户选择一个选项,比如“推荐食物”,它将打开另一个窗口并包含相关的文本框以供输入,一旦用户提供该值并单击submit按钮,该值应该会出现在屏幕上,但这并不发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-13 05:31:47

老实说,我不记得我为使您的代码正常工作所做的所有更改,我记得的主要是删除所有未使用的模块和代码,并使其更紧密地遵循PEP 8- Python代码样式指南 (不是完全)。

另一个主要的修改是nottk.TK派生initialize_screen (改名为InitializeScreen)类,并让它调用tk.Toplevel()来创建与主窗口分离的第二个窗口。与此相关,我将对tk.Tk()的调用移到主脚本中。

下面是两个脚本的版本,我认为这两个脚本一起展示了如何完成您说要完成的任务:

_Recommendation_by_food.py

代码语言:javascript
运行
AI代码解释
复制
import Tkinter as tk

class InitializeScreen(object):
    def __init__(self):
        self.win = tk.Toplevel(takefocus=True)  # Create a new window.

    def draw_screen(self):
        ## User_Name
        self.User_Name_Label = tk.Label(self.win, text="User Name :")
        self.User_Name_Label.grid(column=0, row=0)
        self.User_Name = tk.StringVar()
        self.Name_Input = tk.Entry(self.win, width=12, textvariable=self.User_Name)
        self.Name_Input.grid(column=1, row=0)

        ## User_id
        self.User_id_Label = tk.Label(self.win, text="User id :")
        self.User_id_Label.grid(column=0, row=1)
        self.id = tk.StringVar()
        self.User_id_Input = tk.Entry(self.win, width=12, textvariable=self.id)
        self.User_id_Input.grid(column=1, row=1)

        ## Food1
        self.Food1_Label = tk.Label(self.win, text="Food1 :")
        self.Food1_Label.grid(column=0, row=2)
        self.Food1 = tk.StringVar()
        self.Food1_Input = tk.Entry(self.win, width=12, textvariable=self.Food1)
        self.Food1_Input.grid(column=1, row=2)

        ## Food1_rating
        self.Food1_rating_Label = tk.Label(self.win, text="Rating :")
        self.Food1_rating_Label.grid(column=2, row=2)
        self.Food1_rating = tk.StringVar()
        self.Food1_rating_Input = tk.Entry(self.win, width=12, textvariable=self.Food1_rating)
        self.Food1_rating_Input.grid(column=3, row=2)

        ## Food2
        self.Food2_Label = tk.Label(self.win, text="Food2 :")
        self.Food2_Label.grid(column=0, row=3)
        Food2 = tk.StringVar()
        self.Food2_Input = tk.Entry(self.win, width=12, textvariable=Food2)
        self.Food2_Input.grid(column=1, row=3)

        ## Food2_rating
        self.Food2_rating_Label = tk.Label(self.win, text="Rating :")
        self.Food2_rating_Label.grid(column=2, row=3)
        self.Food2_rating = tk.StringVar()
        self.Food2_rating_Input = tk.Entry(self.win, width=12, textvariable=self.Food2_rating)
        self.Food2_rating_Input.grid(column=3, row=3)

        ## Food3
        self.Food3_Label = tk.Label(self.win, text="Food3 :")
        self.Food3_Label.grid(column=0, row=4)
        self.Food3 = tk.StringVar()
        self.Food3_Input = tk.Entry(self.win, width=12, textvariable=self.Food3)
        self.Food3_Input.grid(column=1, row=4)

        ## Food3_rating
        self.Food3_rating_Label = tk.Label(self.win, text="Rating :")
        self.Food3_rating_Label.grid(column=2, row=4)
        self.Food3_rating = tk.StringVar()
        self.Food3_rating_Input = tk.Entry(self.win, width=12, textvariable=self.Food3_rating)
        self.Food3_rating_Input.grid(column=3, row=4)

        ## Submit button
        self.submit = tk.Button(self.win, text="Submit", command=self.print_val)
        self.submit.grid(column=0,row=5)

        ## Reset button
        self.reset = tk.Button(self.win, text="Reset")
        self.reset.grid(column=1, row=5)


    def print_val(self):
        name1 = self.User_Name.get()
        print('name1: {!r}'.format(name1))

_MainScreen.py

代码语言:javascript
运行
AI代码解释
复制
import Tkinter as tk
from _Recommendation_by_food import InitializeScreen

def call_screen_1():
    fd = InitializeScreen()
    fd.draw_screen()

win = tk.Tk()
win.title('Recommender System For Foods')
win.geometry('500x500')

B1 = tk.Button(win, text="Recommendation By Food", width=30, command=call_screen_1)
B1.pack()

win.mainloop()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49247669

复制
相关文章
Kali Linux 无线渗透测试入门指南 第八章 攻击企业级 WPA 和 RADIUS
企业级 WPA 总是自带不可攻破的光环。多数网络管理员认为它对于无线安全问题是个银弹。在这一章中,我们会看到这个真理不再正确了。
ApacheCN_飞龙
2022/12/01
9910
没有身份凭证的情况下,攻击者就能登录FreeRADIUS
近期,来自卢森堡RESTENA的安全研究专家Stefan Winter在当前全球最流行的radius服务器中发现了一个TLS认证绕过漏洞。 FreeRADIUS<点击阅读原文查看链接>是目前世界上最受
FB客服
2018/02/26
1.3K0
没有身份凭证的情况下,攻击者就能登录FreeRADIUS
影响所有苹果设备的无线漏洞,可被强行接入恶意热点
CVE-2019-6203:苹果设备在PEAP认证上存在缺陷,攻击者可强迫苹果设备接入恶意热点。
FB客服
2019/05/21
1.1K0
无线网络 EAP 认证
平常我们见到最多的 wifi 安全模式都是 WAP2 PSK 由于 WEP 被发现了很多漏洞。WAP2 就出来了他的安全性比 WEP 是高很多的,但是 WAP2 也不是绝对安全的一种 wifi,他的安全性有点依赖密码,也就是说当你的 wifi 密码泄露了他就变的不太安全了。
信安之路
2018/08/08
4.1K0
无线网络 EAP 认证
无线802.1x认证简介及配置方法
XX大学无线网络ECUST.1x(以ECUST.1x为例,ECUST-dorm.1x相同)采用802.1x接入方式,这是一种安全且方便的接入方式。第一次配置好以后,只要在ECUST.1x的覆盖范围内,系统将会自动连接并进行身份认证,非常方便,只有当您更改统一身份认证(UIS)帐号密码后,才需要到Wi-Fi设置里更改登录密码。通过802.1x接入无线网络,所有数据都经过安全加密,保障了用户的隐私不被窃取
yaodo
2022/06/22
4.4K0
wpa_supplicant 的配置说明文件 wpa_supplicant.conf
通过从客户端认证中退出,windows下的认证储存可以被使用,并且私人密匙可以通过以下格式配置: cert://substring_to_match hash://certificate_thumbprint_in_hex
iOSDevLog
2020/06/11
9.8K0
wpa_supplicant.conf 配置文件解析(二)
上一篇链接:https://blog.csdn.net/qq_43804080/article/details/100739897
用户7557625
2020/07/15
4.7K0
最详细的802.1x认证原理及eap-md5的认证授权计费【建议收藏分享】
802.1x又叫Eapol协议,是基于二层做准入控制的,他是基于端口(接口)的网络接入控制协议,802.1x协议仅关注接入端口的状态(一般指client连接入交换机的接口),当合法(根据账号和密码)用户接入时,该端口打开,当非法用户接入或没有用户接入时,该端口状态关闭。
Ponnie
2022/01/13
8.5K0
最详细的802.1x认证原理及eap-md5的认证授权计费【建议收藏分享】
玩转「Wi-Fi」系列之wpa_supplicant 目录介绍(八)
之后的文章基本都是wpa_supplicant源码分析的介绍, wpa_supplicant 一个庞大的开源项目, 最新版本的为2016-10-V2.6。据目前来开,WiFi相关应用层的操作基本都是wpa_supplicant 的封装,包括Android 。初步统计一下,wpa_supplicant 源文件个数 552个, 20万行代码。 分析起来工作量巨大,这条路非常难走,请读者做好准备。
程序手艺人
2019/02/21
4.7K0
玩转「Wi-Fi」系列之wpa_supplicant 目录介绍(八)
无线渗透(下)—企业级WPA破解
0x00. 企业级WPA/WPA2简介 WPA/WPA2企业版:在大型企业网络中,通常采用802.1X的接入认证方式。802.1X认证是一种基于接口的网络接入控制,用户提供认证所需的凭证,如用户名和密码,通过特定的用户认证服务器(一般是RADIUS服务器)和可扩展认证协议EAP(Extensible Authentication Protocol)实现对用户的认证。WPA/WPA2支持基于EAP-TLS(Transport Layer Security)和EAP-PEAP(Protected EAP)的8
信安之路
2018/08/08
2.7K0
无线渗透(下)—企业级WPA破解
CentOS 7 部署OpenLDAP+FreeRadius
一、pre-installer ldap 1.1、实验环境 系统:CentOS 7 Openldap:2.4.44 Freeradius:3.0.13 Ldapadmin:1.8.3(win64) Phpldapadmin:1.2.3 1.2、系统优化 关闭防火墙:
小仙女闯运维
2020/09/23
2.5K0
SER+FreeRADIUS实现3A
部分内容转自VOIPFC,原文使用的SER版本不是最新的了,我在自己实践的基础上将对文档进行一下完善。
py3study
2020/01/06
9020
CISA命令美国联邦机构在7月22日前为CVE-2022-26925打补丁
近日,美国网络安全和基础设施安全局CISA再次将CVE-2022-26925漏洞添加到已知漏洞目录中,并命令联邦文职行政部门FCEB在7月22日前按规定执行修复。CVE-2022-26925漏洞允许未经身份验证的攻击者能够在匿名模式下通过NTLM的身份验证,这可能会导致攻击者夺取整个域的控制权。 据悉在今年5月,CISA曾将CVE-2022-26925 Windows LSA添加在“已知漏洞目录”中,并发布了强制修复的命令,但很快CISA就将这条公告删除。原因微软2022年5月的周二补丁虽然声称解决了CVE
FB客服
2023/03/30
3410
CISA命令美国联邦机构在7月22日前为CVE-2022-26925打补丁
初识PAM4
今天主要介绍下PAM4,笔者对此也是刚刚接触,如果有理解错误的地方,还请大家指出。
光学小豆芽
2020/08/14
2.2K0
Android的Wifi连接
最近在做Wifi连接的功能,在网上查找了很多资料,可用的也比较少,最后遇到很多了问题,一路走来也解决了很多问题,特此记录。
None_Ling
2019/10/29
2.6K0
IntelliJ IDEA 2021.1 EAP 发布
IntelliJ IDEA 2021.1 EAP 1 现已发布,官方表示,其主要是将 IntelliJ IDEA 2021.1 作为一个高质量的版本来对待,它将增强产品的可用性和用户界面。以及关注用户在问题跟踪器中发现的痛点,并计划提供一些新功能。
用户1516716
2021/03/04
6630
IntelliJ IDEA 2021.1 EAP 发布
JMS + jboss EAP 6.2 示例
.Net中如果需要消息队列功能,可以很方便的使用微软自带的MSMQ,对应到Java中,这个功能就是JMS(Java Message Service). 下面以Jboss EAP 6.2环境,介绍一下基本的用法: JMS有二种基本的使用模式, 一种是点对点模式(即“一条”消息只能从“一个”发送方传输到“一个”接收方) - 这种模式下,发送方、接收方不必同时在线,消息在未取回走,一直存放在队列中。 另一种是发布/订阅模式,即一条消息(该模式下,称为“主题”),被一个发送方发送后,如果有多个接收方订阅了,这些接收
菩提树下的杨过
2018/01/24
1.7K0
JMS + jboss EAP 6.2 示例
pyyaml使用_pam模块
假设我们有两个不同的工作环境,开发环境 dev 和生产环境 prod,在这两个不同的环境下有部分环境配置是有区别的,我们可以使用 pyyaml 将他们配置在一起,解析时再加以区分。
全栈程序员站长
2022/09/30
8670
Jboss EAP:native management API学习
上一节已经学习了CLI命令行来控制JBOSS,如果想在程序中以编码方式来控制JBOSS,可以参考下面的代码,实际上在前面的文章,用代码控制Jboss上的DataSource,已经有所接触了,API与CLI是完全等价的,一个是人工敲指令,一个是代码控制,二者最终的效果一致。 import com.sun.javafx.sg.PGShape; import org.jboss.as.controller.client.ModelControllerClient; import org.jboss.as.cont
菩提树下的杨过
2018/01/18
6410
【漫画科普】什么是PAM4
所以,他就和小白约定:考试的时候,自己会吹泡泡,吹大泡泡代表1(对),吹小泡泡代表0(错)。
鲜枣课堂
2020/09/24
1.3K0
【漫画科普】什么是PAM4

相似问题

叉子连接简单程序示例-需要错误指导

42

需要简单的css解析指导

11

我需要简单的Android动画示例

12

我需要简单的文件上传示例

14

需要指导一个简单的猪游戏,结束和结束。

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文