将鼠标悬停在按钮上时如何更改图像?我需要当你将鼠标悬停在按钮 1 或 2 上时图片会发生变化:
Photo1 = (file='Image\ProgrammingButton')
Photo2 = (file='Image\DesignButton')
But1 = (root, image=Photo1)
But2 = (root, image=Photo2)
Run Code Online (Sandbox Code Playgroud)
悬停时
Photo1 = (file='Image\ActiveProgrammingButton')
Photo2 = (file='Image\ActiveDesignButton')
Run Code Online (Sandbox Code Playgroud) 我将新窗口(Tk.Toplevel)的打开绑定在按钮上。但是,如果我按两次按钮,则会打开两个窗口。我可以停用按钮直到新窗口关闭,或者如果按两次按钮则显示消息框吗?
在 Tkinter 中,当绑定到也用于导航的键(如 <Tab> 或 <space>)时,如何覆盖键盘导航的默认行为?MWE 重现问题:
import tkinter
root = tkinter.Tk()
def tab():
print("Tab was pressed")
def space():
print("space was pressed")
A = tkinter.Button(root, text ="A")
A.pack()
B = tkinter.Button(root, text ="B")
B.pack()
root.bind("<Tab>", lambda x: tab())
root.bind("<space>", lambda x: space())
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 PySimpleGUI 制作 GUI 应用程序。
单击“确认”按钮后,我需要在窗口上显示不同的按钮。
我在第一个布局中使用带有“可见性 false”的按钮来完成此操作,当我单击“确认”按钮时,脚本会更改最初不可见的按钮的可见性。
问题是按钮是可见的,但它们不在一行,而是在同一列。
这是第一个窗口:
更新后的窗口应如下所示:
更新后的窗口如下所示:
这是我的代码:
import PySimpleGUI as sg
sg.theme('DarkAmber')
layout = [
[sg.Text('\n\nText sample', key = '_text_', visible = True)],
[sg.Text('Second sample: ', key = '_text2_'), sg.InputText(key='_IN_', size=(10, 1))],
[sg.Text()],
[sg.Button('Confirm', key = '_CONFIRM_', visible=True),
sg.Button('1', key ='_1_', visible=False),
sg.Button('2', key = '_2_', visible=False),
sg.Button('3', key = '_3_', visible=False),
sg.Cancel('Exit', key = '_EXIT_')],
]
window = sg.Window('Window', layout)
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, '_EXIT_'):
break
elif …Run Code Online (Sandbox Code Playgroud) 我想创建一个独特的小工具提示窗口,当我将Treeview鼠标悬停在小部件的每一行上时,就会出现该窗口。
我无法弄清楚如何将事件唯一地绑定<Enter>到<Leave>每一行。
我正在 Visual Studio Code 中尝试 tkinter,但没有显示此代码的窗口(只是测试):
from tkinter import *
Tk()
Run Code Online (Sandbox Code Playgroud)
我是否错过了任何安装?
嘿,我希望你们一切都好。我正在 python tkinter 中构建一个视力表软件,其中包含 Opto Charts。在光学图表中,所有字母都直接位于彼此下方。但是当我尝试在 tkinter 中添加标签时,它形成 V 形,因为每行字体大小都在减小。我想占据标签所有可用空间。
我设法使用它来做到这一点 mainFrame.rowconfigure(0, weight=1),但它只能使标签达到全宽,而不是其中的文本。我已附上屏幕截图以了解其外观。
在屏幕截图中,您可以看到标签设置为屏幕的全长,但文本呈 V 形,因为字体大小从上到下减小。有没有办法将文本锚定为全宽。换句话说,每个字母表都应该直接位于上面的字母表之下。
我希望我已经说清楚了,如果您需要了解其他信息,请告诉我。
当我将 tkinter 与 Playsound 一起使用时,它会冻结直到播放声音。我尝试过使用 block = False 但它根本不播放声音!
这是我的代码的一部分:
from tkinter import *
from tkinter import ttk
from playsound import playsound
class GameMaker:
def __init__(self,root=None):
self.sounds={}
def AddSound(self,name,directory,overide=False,times=0,TimesOveride=0):
if times != 0:
name = name + str(times)
if TimesOveride != 0:
if times >= 10:
return None
else:
if times >= TimesOveride:
return None
try:
self.sounds[name]
if overide == True:
self.sounds[name]=directory
else:
AddSound(name,directory,times=times+1)
except:
self.sounds[name]=directory
def PlaySound(self,sound):
playsound(self.sounds[sound],block=False)
def MapAll(self,command):
keys = list("qwertyuiopasdfghjklzxcvbnm")
for key in keys:
self.Bind(key,command)
print(key) …Run Code Online (Sandbox Code Playgroud) 我正在阅读有关msgcat 的内容。
引用文档:
::msgcat::mcunknown 语言环境 src-string ?arg arg ...?
当当前语言环境中未定义 src-string 的翻译时,此例程由 ::msgcat::mc 调用。如果有任何参数,默认操作是返回按格式传递的 src-string。应用程序可以重新定义此过程,例如记录每个未知字符串的错误消息。::msgcat::mcunknown 过程在与调用 ::msgcat::mc 相同的堆栈上下文中调用。::msgcat::mcunknown 的返回值用作调用::msgcat::mc 的返回值。请注意,仅当相关包未设置包区域设置未知命令名称时才会调用此例程。
如何::msgcat::mcunknown使用 tkinter 在 Python 代码中创建处理程序?
我正在寻找一种在 tkinter 窗口内显示日历或其他日期选择器的方法。我知道 tkcalendar 并且它效果很好。但是,我正在寻找一种无需 tkcalendar 即可实现此目的的方法,因为 tkcalendar 是根据 GPLv3 获得许可的。我搜索了互联网,发现所有论坛都一致表示,包含“import tkcalendar”字样的代码,即使未编译,也被视为派生作品,因此也必须根据 GPLv3 获得许可。这些威胁都没有得到法律专家的答复,但我不想冒险进口任何根据 GLP 许可的东西。
有人可以建议 tkcalendar 的替代方案,或者建议如何在不从源代码复制的情况下重新创建它吗?
编辑:我被要求添加一个解释,说明我的 GPL 问题是什么。我的问题是,据我了解,导入 tkcalendar 的代码被视为 tkcalendar 的“派生作品”,因此也需要根据 GPL 获得许可。不过,我不想在 GPL 下许可我的程序,因此据我了解,我无法导入任何 GPL 许可的模块。
tkinter ×10
python ×8
python-3.x ×4
pysimplegui ×1
python-3.9 ×1
tcl ×1
tkcalendar ×1
tkinter-text ×1
treeview ×1