使用 python TK 获取代理、用户名和密码
Get proxy, username and password using python TK
我正在尝试使用带有以下代码的简单 TK GUI 获取用户的代理信息:
def getProxyCredentials(proxy, username, password):
root = Tk()
#define the entry boxes for username password and proxy
proxyBox = Entry(root)
proxyBox.insert(0, 'some.default.proxy:8080')
userBox = Entry(root)
pwdbox = Entry(root, show = '*')
Label(root, text = 'Proxy Server').pack(side = 'top')
proxyBox.pack(side = 'top')
Label(root, text = 'Username').pack(side = 'top')
userBox.pack(side = 'top')
Label(root, text = 'Password').pack(side = 'top')
pwdbox.pack(side = 'top')
def onokclick():
proxy = proxyBox.get()
username = userBox.get()
password = pwdbox.get()
root.destroy()
return None
Button(root, command=onokclick, text = 'OK').pack(side = 'top')
root.mainloop()
return True
当我在外部调用函数时,所有字符串字段都没有改变。
proxy = ''
username = ''
password = ''
getProxyCredentials(proxy, username, password)
传入的变量虽然在函数内部赋值,但还是空白。字符串通过引用传递,因此它们不应再为空。我 missing/not 做对了什么?
考虑使用 tkinter.simpledialog 实施 class。你可以写一些东西 return 结果到你的程序的主体。
这是一个简单的示例,可以对其进行修改以添加代理字段。
import tkinter as tk
from tkinter import simpledialog
class GetUserNamePassword(simpledialog.Dialog):
def body(self, master):
tk.Label(master, text="Username:").grid(row=0)
tk.Label(master, text="Password:").grid(row=1)
self.e1 = tk.Entry(master)
self.e2 = tk.Entry(master, show='*')
self.e1.grid(row=0, column=1)
self.e2.grid(row=1, column=1)
return self.e1 # initial focus
def apply(self):
first = str(self.e1.get())
second = str(self.e2.get())
self.result = (first, second) # or something
root = tk.Tk()
root.withdraw()
d = GetUserNamePassword(root)
print(d.result)
我正在尝试使用带有以下代码的简单 TK GUI 获取用户的代理信息:
def getProxyCredentials(proxy, username, password):
root = Tk()
#define the entry boxes for username password and proxy
proxyBox = Entry(root)
proxyBox.insert(0, 'some.default.proxy:8080')
userBox = Entry(root)
pwdbox = Entry(root, show = '*')
Label(root, text = 'Proxy Server').pack(side = 'top')
proxyBox.pack(side = 'top')
Label(root, text = 'Username').pack(side = 'top')
userBox.pack(side = 'top')
Label(root, text = 'Password').pack(side = 'top')
pwdbox.pack(side = 'top')
def onokclick():
proxy = proxyBox.get()
username = userBox.get()
password = pwdbox.get()
root.destroy()
return None
Button(root, command=onokclick, text = 'OK').pack(side = 'top')
root.mainloop()
return True
当我在外部调用函数时,所有字符串字段都没有改变。
proxy = ''
username = ''
password = ''
getProxyCredentials(proxy, username, password)
传入的变量虽然在函数内部赋值,但还是空白。字符串通过引用传递,因此它们不应再为空。我 missing/not 做对了什么?
考虑使用 tkinter.simpledialog 实施 class。你可以写一些东西 return 结果到你的程序的主体。
这是一个简单的示例,可以对其进行修改以添加代理字段。
import tkinter as tk
from tkinter import simpledialog
class GetUserNamePassword(simpledialog.Dialog):
def body(self, master):
tk.Label(master, text="Username:").grid(row=0)
tk.Label(master, text="Password:").grid(row=1)
self.e1 = tk.Entry(master)
self.e2 = tk.Entry(master, show='*')
self.e1.grid(row=0, column=1)
self.e2.grid(row=1, column=1)
return self.e1 # initial focus
def apply(self):
first = str(self.e1.get())
second = str(self.e2.get())
self.result = (first, second) # or something
root = tk.Tk()
root.withdraw()
d = GetUserNamePassword(root)
print(d.result)