(大家新年快樂~希望沒有發錯板問問題)
問題
我目前進度到 Day19 中, 要使用 turtle.onkey()
時發生讀不到鍵盤輸入的問題, 我使用的是 VScode , 希望也有使用 非IDE 的大大可以幫我測試看看或是提點一下問題可能是哪些原因造成
說明
簡單測試下面此段程式碼可以順利進行:
click to expand!
from turtle import Screen, Turtle
screen = Screen()
turtle = Turtle()
def test():
turtle.forward(100)
screen.onkey(test,"Up")
screen.listen()
turtle.forward(100)
screen.mainloop()
但是一旦改變 key 值,
例如改成偵測 space 鍵 : screen.onkey(test,"space")
,
或是其他鍵盤輸入 : screen.onkey(test,"a")
後都沒有反應,
只有上下左右鍵有反應, 但是在 repl.it 上都是可以正常執行的, 網路上找不太到解決方法QQ
個人目前猜測可能跟我當初下載 turtle 相關套件有關係, 最一開始執行 turtle
相關程式時錯誤訊息顯示缺少 tkinter
套件, 所以我下了下面那個命令下載 tkinter
後就可以正常運作, 只是單獨 turtle.onkey()
會有問題, 希望大家幫忙一下, 謝謝大家QAQ
sudo apt install python3-tk
執行環境為:
Ubuntu: 20.04
Python3: 3.8.5
tkinter: 8.6
1 Like
有沒有任何錯誤訊息?
可以先重裝套件,或換個乾淨環境試試
1 Like
沒有錯誤訊息, 有重裝過套件甚至整個系統都重裝過了XD 想問您也是使用 vscode 然後有成功嗎?
DotTw
4
雖然進度還沒到,不過測試了一下不管是 “space” 或 “a” 都可以使用,我沒有安裝 tkinter 套件。
最近比較忙,改天用Ubuntu測試看看。
執行環境:
- Windows 10
- Visual Studio code 1.53.2
- Python 3.8.7
1 Like
可以請問一下當初有下載額外套件嗎? 還是您不用額外下載套件就可以 import turtle 了呢?
如果不是預設輸入法搞鬼,那用pynput抓鍵盤事件看看,應該要能像這樣讀到鍵盤輸入
官方範例程式
1 Like
DotTw
8
是的,沒有額外下載套件,不過仔細想想我的python是用anaconda裝的,查了一下預設套件 Packages for 64-bit Windows with Python 3.8 — Anaconda documentation ,應該是沒有裝你提到那些套件。
試著開啟輸入法來測試。
- a會讓視窗左上出現ㄇ但是可以正常操作。
- 但是space會出現以下情況。
1 Like
剛剛測試了一下發現鍵盤都可以抓到, 輸入法的部份我有注意要切換成英文, 也有考慮大小寫的問題但還是都不行
如上述有測試過中文以及英文大小寫都有分別測試但是都沒有反應, 那這樣看下來應該是套件導致的結果了QQ
DotTw
11
你有先update嗎
sudo apt-get update
sudo apt install python3-tk
不確定有沒有所以我剛剛 remove 後再重裝了, 還是不行動QQ
那在這個test method裡面,print某些訊息,確認turtle有收到事件?
有的, 之前我也這樣測試過, 但是結果是什麼東西都沒有輸出出來