标签字符显示不正确
Hashtag character not displaying correctly
以下无法打印主题标签?
import pyautogui
pyautogui.typewrite('#');
它打印'~'。
Pyautogui 依赖于键盘布局。
您可以尝试将您的键盘布局切换为美式键盘布局(这是 Pyautogui 的基础)。例如,加拿大法语键盘布局有一个 #
,而通常 ~
键所在的位置,这可以解释您遇到此行为的原因。
正如 Sean Kennedy 所说,这是一个键盘布局问题。他们仍在努力支持非美式英语键盘布局。
https://github.com/asweigart/pyautogui/issues/137
幸运的是你有英文键盘布局,所以你遇到的问题会少得多,你应该能够修补它们。您可以通过编辑 _pyautogui_win.py
:
来重新定义某些键是否需要 shift
def _keyDown(key):
if key not in keyboardMapping or keyboardMapping[key] is None: return
needsShift = pyautogui.isShiftCharacter(key)
# insert this code, exactly here:
if key == '#': needsShift = False
if key == '+': needsShift = False
if key == '<': needsShift = False
#print(key,needsShift) #####debug
# continue
取自:
https://github.com/asweigart/pyautogui/issues/46#issuecomment-132640299
我自己没有看过代码,但您可能会发现在 isShiftCharacter
.[=16= 中进行编辑是好是坏]
我应该继续阅读。 isShiftCharacter 可能会变成兔子洞:
By the way: Deleting #,+,< in the following function, did NOT work
(util.py in .\pyautogui):
def isShiftCharacter(character): return character.isupper() or
character in '~!@#$%^&*()_+{}|:"<>?'
Maybe .isupper() regards these characters as upper? I didn't check
further
如果 pyautogui
不适用于 #
,我认为这可以作为替代方案
import keyboard
keyboard.write('#')
以下无法打印主题标签?
import pyautogui
pyautogui.typewrite('#');
它打印'~'。
Pyautogui 依赖于键盘布局。
您可以尝试将您的键盘布局切换为美式键盘布局(这是 Pyautogui 的基础)。例如,加拿大法语键盘布局有一个 #
,而通常 ~
键所在的位置,这可以解释您遇到此行为的原因。
正如 Sean Kennedy 所说,这是一个键盘布局问题。他们仍在努力支持非美式英语键盘布局。
https://github.com/asweigart/pyautogui/issues/137
幸运的是你有英文键盘布局,所以你遇到的问题会少得多,你应该能够修补它们。您可以通过编辑 _pyautogui_win.py
:
def _keyDown(key):
if key not in keyboardMapping or keyboardMapping[key] is None: return
needsShift = pyautogui.isShiftCharacter(key)
# insert this code, exactly here:
if key == '#': needsShift = False
if key == '+': needsShift = False
if key == '<': needsShift = False
#print(key,needsShift) #####debug
# continue
取自: https://github.com/asweigart/pyautogui/issues/46#issuecomment-132640299
我自己没有看过代码,但您可能会发现在 [=16= 中进行编辑是好是坏]
isShiftCharacter
.
我应该继续阅读。 isShiftCharacter 可能会变成兔子洞:
By the way: Deleting #,+,< in the following function, did NOT work (util.py in .\pyautogui):
def isShiftCharacter(character): return character.isupper() or character in '~!@#$%^&*()_+{}|:"<>?'
Maybe .isupper() regards these characters as upper? I didn't check further
如果 pyautogui
不适用于 #
,我认为这可以作为替代方案
import keyboard
keyboard.write('#')