首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ttk组合框列表值在alt-Tab键切换后保持打开状态

基础概念

ttk 是 Python 的 tkinter 库中的一个子模块,提供了现代化的 GUI 组件。组合框(Combobox)是其中的一个组件,类似于 HTML 中的下拉菜单,允许用户从预定义的选项中选择一个值。

问题描述

在使用 ttk 组合框时,有时会遇到在按下 Alt-Tab 键切换应用程序后,组合框的下拉列表仍然保持打开状态的问题。

原因分析

这个问题的根本原因通常与窗口管理器的事件处理有关。当按下 Alt-Tab 键时,操作系统会切换到另一个应用程序,但不会立即销毁当前应用程序的所有活动。这可能导致 ttk 组合框的下拉列表状态没有被正确重置。

解决方案

以下是几种可能的解决方案:

1. 绑定事件处理程序

可以通过绑定 FocusOut 事件来确保组合框在失去焦点时关闭下拉列表。

代码语言:txt
复制
import tkinter as tk
from tkinter import ttk

def on_focus_out(event):
    if event.widget == combobox:
        combobox['state'] = 'readonly'

root = tk.Tk()

combobox = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combobox.pack()

combobox.bind('<FocusOut>', on_focus_out)

root.mainloop()

2. 使用 protocol 方法

可以在窗口关闭时强制重置组合框的状态。

代码语言:txt
复制
import tkinter as tk
from tkinter import ttk

def on_closing():
    combobox['state'] = 'readonly'
    root.destroy()

root = tk.Tk()

combobox = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combobox.pack()

root.protocol("WM_DELETE_WINDOW", on_closing)

root.mainloop()

3. 使用 after 方法

可以在主循环中使用 after 方法定期检查组合框的状态并重置。

代码语言:txt
复制
import tkinter as tk
from tkinter import ttk

def check_combobox_state():
    if combobox['state'] != 'readonly':
        combobox['state'] = 'readonly'
    root.after(100, check_combobox_state)

root = tk.Tk()

combobox = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combobox.pack()

root.after(100, check_combobox_state)

root.mainloop()

应用场景

这种解决方案适用于任何需要在 Alt-Tab 切换后保持界面整洁的应用程序,特别是在需要频繁切换应用程序的环境中,如多任务处理或快速响应的场景。

总结

通过绑定事件处理程序、使用 protocol 方法或定期检查状态,可以有效解决 ttk 组合框在 Alt-Tab 切换后保持打开状态的问题。这些方法不仅提高了用户体验,还增强了应用程序的稳定性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python tkinter快速可视化开发GUI界面指南:详细教程(附带工具)

ComboBox 组合框在Tkinter中没有对应的控件,比较类似的只有OptionMenu,类似ComboBox 的Style=2 (Dropdown List)时的表现,一个下拉列表,只能在列表中选择一个值...所以建议在VB的ComboBox中写下所有的下拉列表值。 如果启用了TTK主题扩展库支持,则直接对应到TTK的Combobox,外形和行为基本 一致。...ListBox 列表框对应Python的Listbox,行为也类似,可以在设计阶段设置初始列表。...启动Visual Tkinter后,先按“刷新窗体列表”按钮,列出当前工程的所有窗体和控件列表。 逐个确认各控件的输出属性,在要输出的选项前打钩,如果必要,可以在属性列表中双击修改属性的值。...VisualTkinter尽量的将VB控件属性翻译成Tkinter控件属性,比如字体、颜色 初始值、外观、状态等,甚至包括按钮类和菜单的快捷键设置等待。

10.1K51

测试思想-系统测试 界面测试总结

常用功能要有快捷键(方式)的支持(如:分页页面间的快捷切常用组合Ctrl+Tab) 3....界面某些元素(如复选框,文本输入框,按钮等)要支持键盘自动浏览按钮功能,即按Tab键、回车鍵的自动切换功能,且Tab键顺序合理(第一次Enter、Tab键,应该定位在首要输入的和最重要信息的控件,2每次按...状态条的高度以放置五号字为宜,滚动条的宽度比状态条的略窄。 12. 菜单和工具条要有清楚的界限;菜单要求凸出显示,这样在移走工具条时仍有立体感。 13. 菜单和状态条中通常使用5号字体。...6):MS Windows保留键 Ctrl-Esc 任务列表 ;Ctrl-F4 关闭窗口; Alt-F4 结束应用;Alt-Tab 下一应用 ;Enter 缺省按钮/确认操作 ;Esc 取消按钮/取消操作...选项数较少时使用选项框,相反使用下拉列表框 3. 界面空间较小时使用下拉框而不用选项框。 4. 父窗体或主窗体的中心位置应该在对角线焦点(附近)。 5.

2.2K20
  • 测试之路 pytest接口自动化框架扩展-GUI窗口

    最后把结果显示在一个对话框中。使用pyqt5一是有点大材小用,二是学习成本会有点高。所以我就选择了tkiner 于是从网上搜索相关tkinter的相关教程。总结一下我所学习到方法以及用法。...这些选项可以用键 =值的形式设置,并以逗号分隔 pack:布局函数。布局。添加组件后调用该方法,才能将组件放入画板中。tkinter还有两个布局函数--grid和place。 # Label标签组件。...:文本滚动条 command:滚动条拖动时的回调监听,其属性值是一个回调函数 selectmode:设置列表框的选择模式。...selectmode属性默认值是BROWSE Listbox: yscrollcommand 列表框纵向滚动时的回调监听,该属性的值是一个回调函数 xscrollcommand 列表框横向滚动时的回调监听...filename).resize((width, height)) im = ImageTk.PhotoImage(im) return im # 点击方法,点击后弹窗打开文件选择框

    2.9K30

    软件测试|超好用超简单的Python GUI库——tkinter(十)

    前言上文我们介绍了tkinter的列表框处理,我们在日常生活中还会遇到组合框的情况,tkinter同样可以实现这个功能,下面我们来介绍一下tkinter如何实现组合框。...但在有些情况下,比如列表的项目过多时,若使用列表控件,列出所有选项就会显得界面格外臃肿,这时就需要用到 Combobox 控件,也就是下拉菜单控件(或称复合框),该控件是列表控件的改进版,具有更加灵活的界面...ttkCombobox语法如下所示:cbox=Combobox(窗口对象,[参数列表])Combobox 控件在形式虽然与列表控件存在不同,但它们的本质是相同,因此属性和方法是通用的。...下面通过一组简单的示例进一步了解 Combobox 控件,示例代码如下:import tkinterfrom tkinter import ttk # 导入ttk模块,下拉菜单控件位于ttk子模块中#...总结本文主要介绍了tkinter组合框的实现,组合框的使用比列表框更为多见,更为方便,希望能够帮助到大家,后续我们将介绍tkinter的单选框多选框如何实现。

    1.2K10

    微软复活20年前生产力工具PowerToys,填补Wind10缺失功能,开源且免费

    你可以用光标在当前桌面上任意色块提取颜色,系统会自动复制颜色的HEX或RGB值。 ? 有用户反映,目前Color Picker在以管理员身份运行时无法正常使用,开发人员正在解决这个问题。...而且在重命名之前可以在界面上预览重命名后的结果,避免出错,你还可以排除指定的文件/文件夹等等。 ?...按下“Alt+空格”即可随时呼出输入框,输入名字后,它能快速找到对应的软件、搜索文件/文件夹,并回车迅速打开它们。 ?...Shortcut Guide Windows 快捷键指南可以让用户在长按 Windows 键超过 1 秒时,显示出当前桌面状态下可用的快捷键列表。 ?...实际使用中,用户难以把大量热键组合一一背下来,而Windows Key Shortcut Guide工具则可以让你以最直观的方式,清晰地列出当前应用全部可以操作的快捷键以及对应的功能说明。

    81220

    零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)

    与 组合框: 列表框:(Listbox) 可供用户单选或多选所列条目以形成人机交互。...由于列表框实质上就是将Python 的列表类型数据可视化呈现,在程序实现时,也可直接对相关列表数据进行操作,然后再通过列表框展示出来,而不必拘泥于可视化控件的方法。...如果使用该控件,应先与from tkinter import ttk 语句引用ttk子模块,然后创建组合框实例: 实例名=Combobox(根对象,[属性列表]) 指定变量var=StringVar(...看下面的一个例子:实现四则运算计算器,将两个操作数分别填入两个文本框后,通过选择组合框中的算法触发运算,如下: from tkinter.ttk import * from tkinter import...例如:在一个窗体上设计一个200像素宽的水平滑块,取值范围为1.0~5.0,分辨精度为0.05,刻度间隔为 1,用鼠标拖动滑块后释放鼠标可读取滑块值并显示在标签上。

    14.3K30

    Axure RP8入门之基本操作篇

    在输入数值调整元件尺寸时,可以在样式中设置,让元件【保持宽高比例】 ### 4.设置元件默认角度 方式一:选择需要改变角度的元件,按住键的同时,用鼠标拖动元件的节点到合适的角度。...比如设置元件默认状态为禁用,在浏览原型时,页面打开后就会显示该元件被禁用的样式。...组合/取消组合的快捷键为键/键。 ### 29.转换元件为图片 形状/文本标签/线段等元件可以通过点击,选择将元件【转换为图片】。...加载自定义元件库只需点击功能图标,在列表中选择【载入元件库】。 ### 31.切换元件库 在元件库功能面板中,可以通过点击元件库列表,选择不同的元件库进行使用。...当完成操作后再进行还原。面板弹出后可将其关闭。 ### 46.关闭/恢复功能面板 面板可以在弹出状态下点击【×】将其关闭,也可以在【视图】-【功能区】菜单中进行关闭或开启。

    5.3K30

    手机APP测试(测试点、测试流程、功能测试)

    APP切换到后台,再回到APP,检查功能及应用状态是否正常。   APP切换到后台,再回到APP前台时,注意程序是否奔溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。   ...当杀掉APP进程后,再开启APP,APP能否正常启动。   出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。   ...分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;   c,一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空; 5. up-down控件文本框的测试   ...6.组合列表框的测试   a,条目内容正确,其详细条目内容可以根据需求说明确定;   b,逐一执行列表框中每个条目的功能;   c,检查能否向组合列表框输入数据; 7....同组合列表框类似,根据需求说明书确定列表的各项内容正确,没有丢失或错误;   b,列表框的内容较多时要使用滚动条;   c,列表框允许多选时,要分别检查shift选中条目,按ctrl选中条目和直接用鼠标选中多项条目的情况

    9.2K44

    最全Excel 快捷键总结,告别鼠标!

    (重要) Ctrl组合键常用推荐 Ctrl+PgUp:在工作表选项卡之间从左至右进行切换。(重要) Ctrl+PgDn:在工作表选项卡之间从右至左进行切换。(重要) Ctrl+;:输入当前日期。...F12 F12显示“另存为”对话框。 最全的Ctrl组合键整理 Ctrl+PgUp:在工作表选项卡之间从左至右进行切换。 Ctrl+PgDn:在工作表选项卡之间从右至左进行切换。...Ctrl+`:在工作表中切换显示单元格值和公式。 Ctrl+'/Ctrl+Shift+":将公式从活动单元格上方的单元格复制到单元格或编辑栏中。 Ctrl+1:显示“设置单元格格式”对话框。...当功能区处于选中状态时,按向左键或向右键可选择左边或右边的选项卡。当子菜单处于打开或选中状态时,按这些箭头键可在主菜单和子菜单之间切换。当功能区选项卡处于选中状态时,按这些键可导航选项卡按钮。...在对话框中,按箭头键可在打开的下拉列表中的各个选项之间移动,或在一组选项的各个选项之间移动。 按向下键或 Alt+向下键可打开选定的下拉列表。 Tab 在工作表中向右移动一个单元格。

    7.4K60

    Python-Tkinter图形化界面设计(详细教程 )

    Text) 3.1.3 输入框(Entry) 3.2 按钮(Button) 3.3 单选按钮 3.4 复选框 3.5 列表框 与 组合框 3.5.1 列表框 3.5.2 组合框 3.6 滑块) 3.7...与 组合框 3.5.1 列表框 返回目录 (Listbox) 可供用户单选或多选所列条目以形成人机交互。...如果使用该控件,应先与from tkinter import ttk 语句引用ttk子模块,然后创建组合框实例: 实例名=Combobox(根对象,[属性列表]) 指定变量var=StringVar(...组合框控件常用方法有:获得所选中的选项值get()和获得所选中的选项索引current()。...看下面的一个例子:实现四则运算计算器,将两个操作数分别填入两个文本框后,通过选择组合框中的算法触发运算,如下: ?

    14.4K40

    >>开发工具:IntelliJ IDEA 2020.3基础技能

    如果在切换回活动编辑器时需要保持终端窗口打开,请按 ⌃ ⇥。 返回默认布局 按⇧ F12。 要将当前布局保存为默认布局,请从主菜单中选择“窗口” |“布局” 。将当前布局存储为默认值。...使用切换台进行导航 1、要使用切换器在打开的文件和工具窗口之间跳转,请按⌃⇥。 2、按住^不放,即可打开切换台弹出窗口。 3、按下⇥可在元素之间移动。...“配色方案”页面和“设置/首选项”对话框的“键映射”页面上的键映射设置。⌘ 跳转到导航栏 按Alt + Home。...在这种情况下,只有活动选项卡保持打开状态。 要关闭除活动选项卡和固定选项卡之外的所有非活动选项卡,请右键单击任何选项卡,然后选择“关闭其他选项卡”。 要仅关闭活动选项卡,请按⌘ W。...如有必要,您可以为这些操作分配键盘快捷键。为此,请在“设置/首选项”对话框中⌘,转到“键盘映射”,找到“向右拆分”或“向下拆分”操作,右键单击它,选择“添加键盘快捷键”,然后按要使用的组合键。

    35620

    【译】W3C WAI-ARIA最佳实践 -- 表单

    复选框 WAI-ARIA支持两种类型的 checkbox: 双态: 最常见的复选框类型,它允许用户在两个状态间切换——选中、未选中. 三态: 这种类型的复选框支持额外的第三种状态 - 部分选中....菜单打开后需要的键盘交互参照 Menu or Menu bar。 WAI-ARIA角色,状态和属性 打开菜单的元素具有 button 角色。...在 Menu or Menu bar 中介绍了菜单元素所需的附加角色,状态和属性。 单选按钮组 单选按钮组,是一个可选中按钮的组合,被称为单选按钮,且在该组合中,只有一个按钮处于选中状态。...例如,如果把快捷键 Alt+U 分配给“向上”按钮,该按钮会将当前聚焦的列表项目移动到列表中的较高位置,当焦点在列表中时,按 Alt+U 将焦点移出列表。...如果按钮是一个切换按钮,则其具有 aira-pressed 状态属性。当按钮被打开时,该状态属性的值为 true,当被关闭时,该状态属性的值为false。

    8.3K30

    电脑键盘快捷键和组合键功能使用大全

    电脑键盘快捷键和组合键功能使用大全 键盘快捷键使用大全所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的。下面为大家介绍一些常用快捷键的使用和功能。...一、最常用的电脑快捷键大全 二、电脑快捷键大全键和组合键功能大全   Ctrl+1,2,3… 功能:切换到从左边数起第1,2,3…个标签 Ctrl+A 功能:全部选中当前页面内容 Ctrl...+左边的SHIFT+PRINTSCREEN切换高对比度的开和关 下面是补充的运行命令: 按“开始”-“运行”,或按WIN键+R,在『运行』窗口中输入: (按英文字符顺序排列) %temp%———打开临时文件夹...Ctrl+E 对输入框里当前行的文字居中 Ctrl+V 在qq对话框里实行粘贴 Ctrl+Z 清空/恢复输入框里的文字 Ctrl+回车 快速回复 这个可能是聊QQ时最常用到的了 Ctrl+Alt+Z...+Q查看打开标签的列表 CTRL+TAB切换到下一个标签 CTRL+SHIFT+TAB切换到前一个标签 地址栏快捷键 ALT+D选择地址栏 CTRL+ENTER在地址栏中的文本初出添加”http://www

    6.6K10

    干货:AutoHotkey电脑按键神器介绍,游戏玩家必备

    事实上任何的按键、按钮或组合键都可以被设置为热键;● 可以对Windows各类型窗口进行匹配以及相关属性调整(例如:透明、隐藏、置顶、改变大小等);● 当键入您自定义的缩写时可以 扩展缩写。...三、其他实用功能●  关闭或屏蔽Windows自有的快捷键,例如Win+E和Win+R;●  取替Alt-Tab(通过按键、鼠标滚轮或按钮)从而减轻RSI(肢体重复性劳损);●  本机代码互操作:●  ...、状态等;●  可对IN文件(配置信息文件)进行读写操作。...●  流程控制:●  多种条件判断(字符项目、窗口、文件、进程、错误返回值等),条件下采用{}区块以及制表符进行分层级;●  可以配合变量进行多级循环复杂操作;●  可以与一般编程一样创建自定义函数并调用...;●  使用您喜欢的图标、工具提示(ToolTip)、菜单项目和子菜单来自定义托盘图标菜单;●  显示对话框、工具提示(Tooltips)、气球提示以及弹出菜单,与用户交互;●  可以置顶自定义图片来做程序启动界面

    39930

    电脑快捷键

    Up):快速将光标移到文首 Ctrl+Insert+Insert(即按两下Insert键):快速打开或更改“任务窗格”到“剪贴板”状态 Ctrl+~:打开中文输入法的“在线造词”功能 Ctrl++:快速切换到下标输入状态...这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口!...alt + tab : 如果打开的窗口太多,这个组合键就非常有用了,它可以在一个窗口中显示当前打开的所有窗口的名称和图标●,选中自己希望要打开的窗口,松开这个组合键就可以了。...打开资源管理器 Windows键+F       打开“查找:所有文件”对话框 Windows键+R       打开“运行”对话框 Windows键+BREAK     打开“系统属性”对话框...(加shift 可以跳到前一个窗口) 在IE中: ALT+RIGHT ARROW     显示前一页(前进键) ALT+LEFT ARROW     显示后一页(后退键) CTRL+TAB

    1.2K20

    Excel 常用的九十九个技巧 Office 自学教程快速掌握办公技巧

    6、怎样快速删除“0”值单元格行按组合键【Ctrl+F】导出查找对话框,选择【查找】选项卡,在输入栏中输入:0,点击【全部查找】再按组合键【Ctrl+A】就会显示表格中内容为 0 的所有单元格,选中单元格后右击...23、快速切换至另一个 Excel 窗口当我们需要查阅两个表格的文件内容时,可直接按组合键【Ctrl+Tab】键切换表格窗口。...25、快速删除空行当表格区域内需要删除空行时,可直接选中表格内某列,按组合键【Ctrl+G】导出定位对话框,定位条件勾选【空值】后点击【确定】再删除整行即可。...31、快速输入位数超过 15 位的长数字切换至英文状态下先在单元格内输入单引号,再输入数字即可。...41、单元格上标数字输入如平方米(m2)可以现在单元格内输入:m2 然后选中 2 按组合键【Ctrl+1】打开单元格设置对话框,在字体特殊效果中勾选【上标】。

    7.2K21
    领券