使用python-TK获取代理、用户名和密码

2024-04-26 06:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用一个简单的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)

传入的变量仍然是空的,即使它们是在函数中赋值的。字符串是通过引用传递的,因此它们不应再为空。我遗漏了什么/做得不对?你知道吗


Tags: textgettopdefusernamerootpasswordside
1条回答
网友
1楼 · 发布于 2024-04-26 06:32:49

考虑使用tkinter.simpledialog文件. 您可以编写一些东西将结果返回到程序的主体。你知道吗

下面是一个简单的示例,可以修改它来添加代理字段。你知道吗

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)

相关问题 更多 >