鱼C论坛

 找回密码
 立即注册
查看: 1247|回复: 3

[已解决]Python tkinter问题请教

[复制链接]
发表于 2017-12-28 14:35:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from tkinter import *

root = Tk()
Label(root,text="账号:").grid(row=1)
Label(root,text="密码:").grid(row=2)
V1 = StringVar()
V2 = StringVar()
e1 =Entry(root,textvariable =V1)
e2 =Entry(root,textvariable =V2)
e1.grid(row=1,column=1,padx=10,pady=10)
e2.grid(row=2,column=1,padx=10,pady=10)
while
if V1.get()==1:
    print("")
else:
    print("用户名不正确")

这是一个简单登录界面,运行就直接出现两个空白输入框
请教:如何在程序运行过程中获取V1.get()的值,意思就是等用户输入完成后获取输入的值,怎么实现的啊?


最佳答案
2017-12-28 16:01:10
比如可以添加按钮触发事件后执行.get()方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-28 16:01:10 | 显示全部楼层    本楼为最佳答案   
比如可以添加按钮触发事件后执行.get()方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-12-28 16:01:45 | 显示全部楼层
  1. #登录界面
  2. from tkinter import *
  3. from tkinter import messagebox
  4. import os
  5. import pymysql, pickle

  6. class LoginDemo():
  7.         def __init__(self):
  8.                 #根窗口设置
  9.                 self.root = Tk()
  10.                 self.root.title('基于树莓派的环境管理系统')
  11.                 self.root.resizable(False, False)
  12.                 self.root.geometry('+500+250')
  13.                 #标题
  14.                 self.lb_toptitle = Label(self.root, text='树莓派环境监控平台', bg='blue', font=('楷体', 25))
  15.                 self.lb_toptitle.grid(row=0, column=0, padx=15, pady=2)
  16.                 #登录Frame
  17.                 self.lframe = LabelFrame(self.root)
  18.                 self.lframe.grid(row=1, column=0, padx=15, pady=2)
  19.                 #登录Frame内部布局
  20.                 self.lb_usr = Label(self.lframe, text='用户名:', font=('宋体', 15))
  21.                 self.lb_passwd = Label(self.lframe, text='密 码:', font=('宋体', 15))
  22.                 self.lb_usr.grid(row=0, column=0, padx=15, pady=2, sticky=E)
  23.                 self.lb_passwd.grid(row=1, column=0, padx=15, pady=2, sticky=E)
  24.                
  25.                 self.en_usr_var = StringVar()
  26.                 self.en_passwd_var = StringVar()
  27.                 self.en_user = Entry(self.lframe, textvariable=self.en_usr_var)
  28.                 self.en_passwd = Entry(self.lframe, textvariable=self.en_passwd_var, show='*')
  29.                 self.en_user.grid(row=0, column=1, padx=15, pady=2)
  30.                 self.en_passwd.grid(row=1, column=1, padx=15, pady=2)
  31.                
  32.                 with open("inforecord.txt", 'r') as self.f:
  33.                         self.showusrname = self.f.readline()
  34.                         self.showpssword = self.f.readline()
  35.                         self.ckb_status = self.f.readline()
  36.                         self.showusrname = self.showusrname.strip('\n')
  37.                         self.showpssword = self.showpssword.strip('\n')
  38.                         self.ckb_status = self.ckb_status.strip('\n')
  39.                         self.f.close()
  40.                 self.ckb_var = IntVar()
  41.                 self.ckb = Checkbutton(self.lframe, text='记住密码', underline=0,
  42.                                                                 variable=self.ckb_var, command=self.func_ckb, font=('宋体', 15))
  43.                 self.ckb.grid(row=2, column=1, padx=15, pady=2, sticky=W)
  44.                 if self.ckb_status == '1':
  45.                         self.en_user.insert(INSERT, '%s' % self.showusrname)
  46.                         self.en_passwd.insert(INSERT, '%s' % self.showpssword)
  47.                         self.ckb.select()
  48.                        
  49.                 self.bt = Button(self.lframe, text='登录', bd=4, width=10, command=self.func_bt, font=('宋体', 20))
  50.                 self.bt.grid(row=3, column=0, padx=14, pady=2)
  51.                
  52.                 self.bt = Button(self.lframe, text='密码提示', bd=4, width=10, command=self.func_prompt, font=('宋体', 20))
  53.                 self.bt.grid(row=3, column=1, padx=14, pady=2)
  54.                 self.root.mainloop()
  55.                
  56.         def func_ckb(self):
  57.                 if self.ckb_var.get():
  58.                         self.f = open("inforecord.txt", 'w+')
  59.                         self.f.truncate()
  60.                         self.f.writelines(self.en_usr_var.get() + '\n')
  61.                         self.f.writelines(self.en_passwd_var.get() + '\n')
  62.                         self.f.writelines(str(self.ckb_var.get()) + '\n')
  63.                         self.f.close()
  64.                
  65.         def func_bt(self):
  66.                 #连接用户数据数据库
  67.                 self.conn_ip = '192.168.1.104'
  68.                 self.conn_db = pymysql.connect(host = self.conn_ip, port = 3306, user = 'remotedata', passwd = '123', database='UserDatadb')
  69.                 #使用cursor()方法创建一个游标对象 cursor
  70.                 self.cursor = self.conn_db.cursor()
  71.                 self.sql = "SELECT * FROM userdata where username = '%s'" % self.en_usr_var.get()
  72.                 self.cursor.execute(self.sql)
  73.                 self.conn_db.commit()
  74.                 self.get_data = self.cursor.fetchone()
  75.                 if self.get_data:
  76.                         if self.en_passwd_var.get() == self.get_data[2]:
  77.                                 title = '提示'
  78.                                 message = '登录成功'
  79.                                 messagebox.showinfo(title, message)
  80.                                 self.conn_db.close()
  81.                                 self.root.withdraw()
  82.                                 os.system("python ControlDemo1.py")
  83.                         else:
  84.                                 title = '警告'
  85.                                 message = '用户名或密码错误'
  86.                                 messagebox.showerror(title, message)
  87.                 else:
  88.                         title = '警告'
  89.                         message = '用户名不存在!'
  90.                         messagebox.showerror(title, message)
  91.        
  92.         def func_prompt(self):
  93.                 title = '提示'
  94.                 message = '就不提示,气死你!'
  95.                 messagebox.showinfo(title, message)
  96.                
  97.                
  98. if __name__ == "__main__":
  99.         LoginDemo()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 16:02:45 | 显示全部楼层

这是我课程设计的一小部分代码,你可以参考下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 05:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表