我有一個帶有窗口小部件上的標籤和條目窗口小部件的GUI。我想添加一個命令提示符到用戶可以通過其提交命令的框架。我知道如何使用cmd模塊在python shell中創建一個提示,但我希望提示是我的GUI窗口的一部分。有沒有辦法在畫布中「嵌入」命令提示符?現在我正在使用Cmd。 init(self)和cmdloop在python shell中啓動提示...另一個窗口小部件中的命令提示符
爲了進一步闡明,我希望shell從我的GUI窗口(例如在畫布內)運行,而不是像它的自己的窗戶。那可能嗎?
我有一個帶有窗口小部件上的標籤和條目窗口小部件的GUI。我想添加一個命令提示符到用戶可以通過其提交命令的框架。我知道如何使用cmd模塊在python shell中創建一個提示,但我希望提示是我的GUI窗口的一部分。有沒有辦法在畫布中「嵌入」命令提示符?現在我正在使用Cmd。 init(self)和cmdloop在python shell中啓動提示...另一個窗口小部件中的命令提示符
爲了進一步闡明,我希望shell從我的GUI窗口(例如在畫布內)運行,而不是像它的自己的窗戶。那可能嗎?
cmd
模塊用於終端,其中只有一個用於輸入和輸出的文本「小部件」。這不適合GUI。
下面是工作的想法(通過類似金字塔的Web框架的啓發)更好:
有一個只讀部件的輸出,和該命令進入一個單獨的部件。
當用戶按下回車鍵,則該命令複製到輸出箱(用前綴「>>>」和「...」視需要),運行命令(使用compile_command
和run_code
從code
模塊,具有重定向sys.stdout
轉換爲StringIO
,並將其附加到輸出中),然後將輸出附加到輸出框中。
謝謝,我會盡力做到這一點,我對python很陌生。 – MiddleClassMan
你在使用Tkinter嗎? –
是的,我是。你知道如何解決我的問題? – MiddleClassMan
如果你使用Linux,看看這裏:http://stackoverflow.com/questions/7253448/how-to-embed-a-terminal。如果您使用的是Windows,則必須使用類似的方法,但使用CMD窗口而不是xterm窗口。我不相信CMD具有'-into'屬性,所以你必須告訴操作系統將CMD窗口放在Tkinter窗口中,而不是有自己的窗口。這意味着您需要對Windows API有非常好的理解。 –