python3 tkinter Entry() 无法选择文本字段,直到我单击应用程序窗口外部一次

2024-03-21

我用 python3、tkinter 编写了一个非常简单的应用程序,但我看到 Entry() 出现一些奇怪的行为。我是 tkinter 和 python 的新手。

import os
from tkinter import Tk, Entry, filedialog

class MyGUI:
    def __init__(self,master):

        self.master = master

        self.date_entry = Entry(master)
        self.date_entry.pack()
        self.date_entry.insert(0,"test")

        self.master.mainloop()

root = Tk()
root.directory = os.path.abspath(filedialog.askdirectory())
my_gui = MyGUI(root)

当我运行此代码时,倒数第二行导致了以下问题: 当我尝试编辑“测试”文本时,我无法选择它(没有光标或任何东西)。但是,如果我在应用程序之外(例如桌面)单击一次,我就可以对其进行编辑。

有谁知道是什么问题?

我想知道这是否与文件对话框创建的新应用程序窗口有关,但我找不到答案。

感谢您的回复!


在测试了这个奇怪的行为之后,似乎只要添加一个按钮来获取目录,问题就会消失。

然而我觉得很奇怪,我会看看是否能找到任何可以解释为什么 tkinter 这样做的东西。

这段代码应该适合你:

import tkinter as tk
from tkinter import filedialog

class MyGUI(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)

        self.date_entry = tk.Entry(self)
        self.date_entry.pack()
        self.date_entry.insert(0, "test")
        self.directory = ""
        tk.Button(self, text="Get Directory", command=self.get_directory).pack()

    def get_directory(self):
        self.directory = filedialog.askdirectory()

MyGUI().mainloop()

UPDATE:

我最近了解到添加update_idletasks()在文件对话框修复焦点问题之前。

更新的代码:

import os
from tkinter import Tk, Entry, filedialog

class MyGUI:
    def __init__(self,master):

        self.master = master

        self.date_entry = Entry(master)
        self.date_entry.pack()
        self.date_entry.insert(0,"test")

        self.master.mainloop()

root = Tk()
root.update_idletasks() # fix focus issue.
root.directory = os.path.abspath(filedialog.askdirectory())
my_gui = MyGUI(root)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3 tkinter Entry() 无法选择文本字段,直到我单击应用程序窗口外部一次 的相关文章

随机推荐

  • 为什么PHP APC缓存未命中不断增加

    我正在使用 apc php 检查 PHP APC 的统计信息 http svn php net viewvc pecl apc trunk apc php 我在相当繁忙的服务器上有以下统计数据 Cached Files 317 26 3 M
  • Recyclerview 中的 Exoplayer 错误,源错误 没有可用的提取器

    我正在使用 ExoPlayer 在 RecyclerView 中流式传输视频 我正在 ViewHolder 内的 RecyclerView 适配器的绑定方法中实现 ExoPlayer 我使用的视频格式是 m3u8 我使用的 URL 在浏览器
  • 我如何使用 PHP 获取当前月份和前三个月

    谁能告诉我如何使用 PHP 获取当前月份和前三个月 例如 echo date y M d 输出将为 09 Oct 20 但是我需要 August 九月 October 作为输出 提前致谢 Fero 对于月份的完整文本表示 您需要传递 F e
  • 改进最小/最大下采样

    我有一些大型数组 约 1 亿点 需要以交互方式绘制 我目前正在使用 Matplotlib 按原样绘制数组会变得非常慢并且很浪费 因为无论如何您都无法可视化那么多点 因此 我创建了一个最小 最大抽取函数 并将其与轴的 xlim changed
  • Vim Spell 选项忽略包含下划线、数字等的源代码标识符

    vim 拼写检查器中是否有任何选项可以忽略纯文本文件中包含下划线 多个大写字母 减号 数字的单词 我在手册 7 2 或谷歌搜索中找不到任何内容 您可以使用syntax命令与 NoSpell簇 syn match myExCapitalWor
  • 无 JIT 优化

    看一下这个问题 https stackoverflow com questions 17761515 java multiplication strange behaviour 代码 class test public static voi
  • 由于 IDFA 无法点击“准备上传二进制文件”

    我即将提交应用程序的更新 当我单击 准备上传二进制文件 时 我收到以下问题 此应用程序是否使用广告标识符 IDFA 由于 AdMob 使用它 我选择 是 下图显示了当我单击 继续 时发生的情况 唯一的问题是 无法选择应用程序如何使用IDFA
  • 为什么随机类不是真正随机的? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在留言板上读到过这件事 Random班级并不是真正随机的 它是使用数学公式以可预测的方式创建的 真的是这样吗 如果是这样 Random真的不是随机的
  • Python 输入无法正确比较[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我今天在测试中做到了这一点 然后回来测试它 我知道更好的方法来做到这一点 但为什么这不起作用 def f e raw input ente
  • 从现有架构生成表关系图(SQL Server)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有办法生成一个图表 显示现有表及其与数据库的连接的关系 这是针对 SQL Server 2008 Express Edition 的
  • 什么是 C/C++ 数据段和堆栈大小?

    我读到这取决于编译器和操作系统架构 如何在使用 GCC 作为编译器的 Linux 系统上找到数据段和堆栈最大大小 让我和你一起实验一下 创建文件 test c 如下所示 int main void return 0 现在编译它 指定最大堆栈
  • 使用 ExtJ 进行多选组合框

    如何实现多选组合框作为Ext FormPanel使用ExtJs 我一直在寻找 但似乎找不到与最新版本的 ExtJs 兼容的解决方案 这个问题 https stackoverflow com questions 2635809 multise
  • 加载 tableview 之前检测 iPhone 方向

    所以 我有点陷入困境 根据这个帖子 https stackoverflow com questions 3402401 get launch orientation of ipad app iPhone iPad 的方向在一定程度上是纵向的
  • 提交的 iPhone 应用程序二进制详细信息中显示“预渲染图标标志:true”,但图标在商店中显示为光泽效果 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 图标已包含
  • 如何设置 UINavigationBar 上后退按钮的文本? [复制]

    这个问题在这里已经有答案了 可能的重复 如何更改导航栏上 后退 按钮的标题 https stackoverflow com questions 1449339 how do i change the title of the back bu
  • 如何将 $index 从 ng-repeat 表获取到模态控制器?

    我有一个使用 angularjs bootstrap ui 创建的客户记录表 并使用 ng repeat 表中每行的末尾都有一个按钮 用于获取有关客户的更多信息 单击该按钮时 会弹出一个包含信息的模态表单 我的问题是无论我按哪个按钮我都会得
  • Cocoa 有布局/几何管理吗?

    如果我创建 WinForms Qt Gtk 应用程序 我使用所谓的 布局管理器 或 几何管理器 根据小部件内的文本和我的指令自动布局我的 UI 例如 如果我布局一个具有大编辑字段且其下方有 2 个按钮右对齐的窗口 我会编写以下代码 使用垂直
  • 使用 ASIFormDataRequest 将 json 发送到 php

    我是 iPhone 新手 我正在尝试将 NSMutable 数组转换为 json 字符串 然后使用 request 将此字符串发送到 php 文件 然后使用响应 NSLog 再次打印它 以确保它已成功发送 所以我在viewDidLoad中编
  • 将字符串附加到 IronScheme 中的现有文本文件

    我们正在尝试使用 IronScheme 构建一个日志文件 并且我们已经使用racket 为其编写了代码 它在球拍中工作正常 但 IronScheme 会抛出错误 这是我们目前所拥有的 define write to log lambda w
  • python3 tkinter Entry() 无法选择文本字段,直到我单击应用程序窗口外部一次

    我用 python3 tkinter 编写了一个非常简单的应用程序 但我看到 Entry 出现一些奇怪的行为 我是 tkinter 和 python 的新手 import os from tkinter import Tk Entry fi