alking20 发表于 2022-12-30 17:43:05

请大神看一下这个代码处理随机数那边该怎么修改

处理随机数的那边出错,看不出问题,求大神帮忙
import tkinter as tk
import time
import random

f = open('info.txt', 'r', encoding='utf-8')
fi = f.readlines()
dic = {}
for lst in fi:
    d = str(lst).strip('\n').split(",")
    print(d)
    dic] = d
    print(d)
    print(d)

# 销毁登录窗口,创建主窗口,子函数嵌套完成
def pop_window():
    root.destroy()
    win = tk.Tk()
    win.title("MainBox")
    win.geometry("350x500")
    win.resizable(0,0)
    win.iconbitmap('favicon.ico')
    win.tk.call("source", "azure.tcl")
    win.tk.call("set_theme", "dark")

    varCount = tk.StringVar(root, value='')
    entryCount = tk.Entry(win, width=10,textvariable=varCount)
    entryCount.place(x=20, y=20, height=50)

    num = tk.StringVar()

    # 处理随机数函数
    i=0
    _num = tk.StringVar()

    def _randnum():
      #global i = 0
      count = entryCount.get()
      print(count)
      num.set(str(random.sample(range(1,60),int(count))))
      _num = num
      i += 1
      return _num

    # 绘制窗口组件

    labelNumber = tk.Label(win,textvariable=_num,font=("Arial",48))
    labelNumber.place(x=75,y=70)
    buttonClick = tk.Button(win,text="Start",font=("Arial",18),command=_randnum)
    buttonClick.place(x=20,y=200,width=100,height=60)

    # 启动消息循环
    win.update()
    win.minsize(win.winfo_width(), win.winfo_height())
    x_cordinate = int((win.winfo_screenwidth() / 2) - (win.winfo_width() / 2))
    y_cordinate = int((win.winfo_screenheight() / 2) - (win.winfo_height() / 2))
    win.geometry("+{}+{}".format(x_cordinate, y_cordinate - 20))
    win.mainloop()
    #登录窗口后销毁自身窗口呼出win窗口进行工作

# 登录事件处理函数
def login():
    # 获取用户名和密码
      buttonCancel['state'] = 'disable'
      buttonOk['state'] = 'disable'
      name = entryName.get()
      pwd = entryPwd.get()
      print(name)
      print(pwd)
      def OK():
            root['height']=300
      # 删除控件
            labelPrompt.destroy()
            labelMessage.destroy()
            buttonOk['state']='active'
            buttonCancel['state']='active'

      if name in dic and dic == pwd:
            labelMessage = tk.Label(root,
                                    text='Message',
                                    fg='white',
                                    bg='blue',
                                    font=("Times New Roman",16),
                                    justify=tk.RIGHT,
                                    anchor='w',
                                    width=80)
            labelMessage.place(x=0,y=200,width=600,height=30)
            root['height']=350
            labelPrompt = tk.Label(root,
                                 text='登陆成功',
                                 font=("微软雅黑",14),
                                 justify=tk.RIGHT,
                                 anchor='e',
                                 width=80)
            labelPrompt.place(x=90,y=250,width=90,height=30)
            buttonOkk = tk.Button(root,
                                  text='ok',
                                  font=("微软雅黑",14),
                                  activebackground='#ff0000',
                                  command=OK)
            buttonOkk.place(x=500, y=300, width=80, height=30)

            pop_window()

      else:
            labelMessage = tk.Label(root, text="Message                                                            "
                                                    "    请重新输入账号密码       ", fg='white', bg='blue',
                                       font=("Times New Roman", 16),
                                       justify=tk.RIGHT, anchor='w', width=600)
            labelMessage.place(x=0, y=200, width=600, height=30)
            root['height'] = 350
            labelPrompt = tk.Label(root, text='用户名和密码不匹配', font=("微软雅黑", 14), justify=tk.RIGHT,
                                        anchor='w',
                                        width=100)
            labelPrompt.place(x=90, y=250, width=180, height=30)
            buttonOkk = tk.Button(root, text='ok', font=("微软雅黑", 14), activeforeground='#ff0000', command=OK)
            buttonOkk.place(x=500, y=300, width=80, height=30)

# 取消事件处理函数
def cancel():
    # 清除文本框
    varName.set('')
    varPwd.set('')

if __name__ == "__main__":
    #建立窗口
    root = tk.Tk()
    root.title("LoginBox")
    root.geometry("600x300")
    root.resizable(0, 0)
    root.iconbitmap('favicon.ico')
    root.tk.call("source", "azure.tcl")
    root.tk.call("set_theme", "dark")

    # 在窗口上创建标签组件
    labelTitle = tk.Label(root, text='Login', font=("微软雅黑", 14), justify=tk.CENTER, anchor='center', width=200)
    labelTitle.place(x=210, y=15, width=200, height=30)
    labeName = tk.Label(root, text='Account:', font=("微软雅黑", 12), justify=tk.RIGHT, anchor='e', width=80)
    labeName.place(x=50, y=50, width=125, height=30)
    labeName = tk.Label(root, text='Password:', font=("微软雅黑", 12), justify=tk.RIGHT, anchor='e', width=80)
    labeName.place(x=50, y=90, width=125, height=30)

    # 创建文本框,同时设置相关变量
    varName = tk.StringVar(root, value='')
    entryName = tk.Entry(root, width=80, textvariable=varName)
    entryName.place(x=200, y=50, width=250, height=30)# 创建密码文本框,同时设置关联的变量
    varPwd = tk.StringVar(root, value='')
    entryPwd = tk.Entry(root, show='*', width=80, textvariable=varPwd)
    entryPwd.place(x=200, y=90, width=250, height=30)

    # 创建Login按钮
    buttonOk = tk.Button(root, text='确定', command=login)
    buttonOk.place(x=200, y=135, width=80, height=30)

    # 创建Cancel按钮
    buttonCancel = tk.Button(root, text='取消', command=cancel)
    buttonCancel.place(x=370, y=135, width=80, height=30)

    # 启动消息循环
    root.update()
    root.minsize(root.winfo_width(), root.winfo_height())
    x_cordinate = int((root.winfo_screenwidth() / 2) - (root.winfo_width() / 2))
    y_cordinate = int((root.winfo_screenheight() / 2) - (root.winfo_height() / 2))
    root.geometry("+{}+{}".format(x_cordinate, y_cordinate - 20))

    root.mainloop()

元豪 发表于 2022-12-30 17:57:15

请使用代码格式!

zsy0226 发表于 2023-1-8 09:44:41

请使用代码格式!

页: [1]
查看完整版本: 请大神看一下这个代码处理随机数那边该怎么修改