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

如何使用Python Tkinter创建类似记事本的全屏文本输入框?

Tkinter全屏铺满自动激活输入框实现方案

问题根因

你当前代码存在两个核心问题,无法满足RFID读卡自动输入的需求:

  • 仅设置了窗口全屏属性,Entry输入框的pack()布局未配置拉伸填充规则,组件默认按最小内容尺寸渲染,不会占满整个窗口
  • 窗口启动后没有主动给输入框分配焦点,就算组件铺满窗口,无焦点状态下依然无法直接接收读卡器的输入内容

具体修改点

  • 调整pack()布局参数:添加fill=tk.BOTH、expand=True参数,让输入框在水平、垂直两个方向跟随窗口尺寸拉伸,占满全部可用空间,移除原有pady=20的上下边距避免留白
  • 启动后主动聚焦输入框:窗口渲染完成后调用focus_set()方法,让输入框默认获得输入焦点,无需手动点击即可接收读卡器输入
  • (可选)如果需要视觉上完全无边界,可以给Entry设置borderwidth=0、highlightthickness=0去掉默认边框

修正后可直接运行的代码

def onReturn(event):
    rfIDtext=entry1.get()
    cur.execute("INSERT INTO RFIDDATA(customer_ID,rf_ID) VALUES (?,?)",(custID,rfIDtext,))
    entry1.delete(0,'end')
    root.destroy()
    con.commit()   
    
root = tk.Tk()
root.title("RFID")

entry1 = tk.Entry(root)
entry1.bind("<Return>", onReturn)
# 配置布局让输入框占满整个窗口
entry1.pack(fill=tk.BOTH, expand=True)
root.attributes('-fullscreen', True)
# 启动后自动让输入框获得焦点
entry1.focus_set()

root.mainloop()
        
con.close()

补充说明:如果需要调整输入框内文字大小适配全屏,可以在初始化Entry时添加font=("字体名", 字号)参数,比如font=("Arial", 32),方便远距离观察读卡输入内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:18:14