python - Tkinter 组合框 - 单击小部件时优雅地失去焦点

标签 python combobox tkinter focus

我有一个用 Python Tkinter 编写的 ComboBox,当您单击它而不选择某些内容时,它会发出可怕的系统警报声。
例如,当您点击下拉菜单并选择您的项目时,它工作正常。但是如果你点击下拉菜单然后决定点击关闭,它会像预期的那样失去焦点,但它会发出警报声。可以以某种方式禁用它,以便它可以优雅地失去焦点而不会提示吗?顺便说一句,我在 OSX 10.9 上
更新 -
产生警报的最少工作代码。

from Tkconstants import *
import ttk
import Tkinter

class PyPrecursor():

    def __init__(self,root):
        self.root = root
        self.TabNotebook()

    def TabNotebook(self):
        self.main_notebook_frame = ttk.Notebook(self.root, name='main_notebook')
        self.main_notebook_frame.enable_traversal()
        self.OptionsF = ttk.Frame(self.main_notebook_frame, name='options')
        self.length_options_frame = ttk.LabelFrame(
        self.OptionsF, labelwidget=ttk.Label(font=('Arial', 15), text="Length Options:"))
        self.hcdr3_length_label = ttk.Label(self.length_options_frame, text="HCDR3 Length")
        self.HCDR3_Length = Tkinter.StringVar()
        self.hcdr3_length_combo = ttk.Combobox(
        self.length_options_frame, values=[i for i in xrange(16, 36)], 
             textvariable=self.HCDR3_Length)
        self.hcdr3_length_combo.current(0)
        self.length_options_frame.pack(side=TOP,fill=X,pady=5)
        self.hcdr3_length_label.pack(side=LEFT)
        self.hcdr3_length_combo.pack(side=LEFT,anchor=W)
        self.main_notebook_frame.pack(side=TOP,expand=1,fill=BOTH,padx=10,pady=10)
        self.main_notebook_frame.add(
            self.OptionsF, text="Input Options", underline=0, padding=2)
        self.main_notebook_frame.bind("<<NotebookTabChanged>>",self.update_)

    def update_(self,event):
        self.root.update()

def main():
    root = Tkinter.Tk()
    PyPrecursor(root)
    root.mainloop()
    root.update_idletasks()


if __name__ == '__main__':
    main()

最佳答案

你可能想试试这个:self.hcdr3_length_combo.bell(displayof=1)
虽然不确定它应该是 1 还是 0 ......
如果它不起作用,可能是包含小部件会发出声音。可能还想将其应用于父小部件。我不熟悉 python 2.7,当我使用 python3 稍作修改时它不会发出声音。

通常,当您找不到特定小部件的选项时,您可以在常规小部件选项中找到一些内容。只需搜索“tkinter 小部件选项”,你就会得到一些类似的地方:
https://effbot.org/tkinterbook/widget.htm

关于python - Tkinter 组合框 - 单击小部件时优雅地失去焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28621812/

相关文章:

python - Airflow :如何将读取 json 文件的方法放在本地库中

python - django.db.utils.OperationalError : no such column: django_content_type. 名称?

python - 如何修复 Django 中的数据库错误和 ghost 迁移错误?

c# - InvalidArgument= '0' 的值无效.. 在 ComboBox.Items.Clear() 之后单击 - .NET

javascript - 如何根据组合框选择更改文本标签?

Python;无法调用列表框

python - Pandas : time mask between 'on' /'off'

apache-flex - 组合框中显示项目的 Flex 自定义项目渲染器

python - 适用于 Windows 7-64 位的 Tkinter

python - 我正在尝试使用变量更新 tkinter 标签,但标签只是显示为空白