You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Tkinter开发二维码生成工具无法获取Entry输入内容的问题

问题根因

你的代码有3个核心逻辑错误,导致无法读取输入生成有效二维码:

  • 程序启动阶段就执行了qrcode.make(e1.get()),此时输入框为空,直接生成了空白二维码对象赋值给全局变量img,后续打开按钮默认调用的就是这个初始空白对象
  • 生成按钮的回调逻辑错误:qrcode.make(e1.get())生成的新二维码对象没有赋值给img变量,且img.save("")传入空字符串作为保存路径,无法正常写入文件;用and连接两个操作的写法不符合tkinter回调的逻辑预期,新生成的二维码根本没有被持久化保存
  • 没有在用户点击生成按钮的时机重新读取输入框内容、更新全局img对象,打开按钮始终读取的是程序启动时生成的空白二维码
修复方案

直接替换原有代码即可,修复点包括:移除启动时自动生成空白二维码的逻辑、给生成按钮编写独立回调函数正确读取输入并生成/保存二维码、给打开按钮增加空判断避免报错、指定固定的二维码保存文件名。

import qrcode 
import tkinter
from PIL import Image

# 初始化全局二维码对象
img = None

main = tkinter.Tk("Link converter to QrCode ")
main.title("Link converter to Qr Code")
main.geometry("685x85")

link = tkinter.Label(
    main, 
    width="30",
    text='Link:')
link.grid(row=0)

e1 = tkinter.Entry(
    main, 
    bd="5", 
    width="75")
e1.grid(row=0, column=1)

def create_qrcode():
    global img
    # 读取输入框内容,去除首尾空白
    input_content = e1.get().strip()
    if not input_content:
        return
    # 基于输入内容生成二维码
    img = qrcode.make(input_content)
    # 保存二维码到本地文件
    img.save("generated_qr.png")

button_create = tkinter.Button( 
    main, 
    text="Click to create the Qrcode.",  
    command=create_qrcode
)
button_create.grid(row=2, column=1)

def open_qrcode():
    # 未生成二维码时不执行打开操作
    if img:
        img.show()

button_open = tkinter.Button ( 
    main,  
    text="Click here to open the Qrcode", 
    command=open_qrcode, 
    width="25")
button_open.grid(row=2, column=0)

exit_button = tkinter.Button(
    main,
    width=15,
    text='Exit',
    command=main.quit)
exit_button.grid(row=4, column=0)

main.mainloop()
使用说明

运行程序后在输入框填入完整链接,先点击「Click to create the Qrcode.」按钮生成二维码,再点击打开按钮即可查看对应二维码,生成的图片会保存在程序运行目录下的generated_qr.png文件中。

内容的提问来源于stack exchange,提问作者user19193204

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:24:16