2
我剛剛開始使用GUI應用程序,該應用程序將具有多種不同的模式和大量鍵盤快捷鍵。理想情況下,我想支持讓用戶重新映射這些,就像在eclipse中一樣。什麼是 - 如果有的話 - 這種情況的標準解決方案?我可以想象,主窗口捕獲所有按鍵並將它們轉換爲所有兒童控件的按鍵中立事件作爲一種方式,但它感覺笨拙。有沒有這樣的標準框架?如果是這樣,尤其是我可以用作示例的蟒蛇或開源軟件。如何設計我的可重映射快捷鍵軟件?
我剛剛開始使用GUI應用程序,該應用程序將具有多種不同的模式和大量鍵盤快捷鍵。理想情況下,我想支持讓用戶重新映射這些,就像在eclipse中一樣。什麼是 - 如果有的話 - 這種情況的標準解決方案?我可以想象,主窗口捕獲所有按鍵並將它們轉換爲所有兒童控件的按鍵中立事件作爲一種方式,但它感覺笨拙。有沒有這樣的標準框架?如果是這樣,尤其是我可以用作示例的蟒蛇或開源軟件。如何設計我的可重映射快捷鍵軟件?
我可能會使用類似命令模式的東西。創建一個散列表,其中鍵是按下的鍵,值是一個函數(或帶有函數的對象),這是要執行的操作。
雖然在CPU時間內可能有更快的方法來做到這一點,但這似乎是最乾淨和最易維護的方式,而且對於單用戶應用程序而言,清理代碼應該非常重要,這足夠快。