我正在尋找一種可以將wxPython GUI元素添加到pygame中的方法。如果有另一種方法可以解決添加GUI元素到pygame的目的,請提出建議。我在安裝PGU時遇到問題。感謝您的幫助。在pygame中添加wxpython
5
A
回答
3
沒有;你可以添加wxWidgets到PyGame。添加打開/保存對話框,按鈕等操作很簡單。有時,當您嘗試共享區域時(如上所述,存在衝突的窗口系統),它會變得很討厭,但它絕對是可行的。
我以前寫過幾年,所以很雜亂;但至少很簡單。它應該幫助你開始:
class SDLThread:
def __init__(self,screen):
self.m_bKeepGoing = self.m_bRunning = False
self.screen = screen
self.color = (255,0,0)
self.rect = (10,10,100,100)
def Start(self):
self.m_bKeepGoing = self.m_bRunning = True
thread.start_new_thread(self.Run,())
def Stop(self):
self.m_bKeepGoing = False
def IsRunning(self):
return self.m_bRunning
def Run(self):
while self.m_bKeepGoing:
pass
## GetInput()
## Draw()
self.m_bRunning = False;
class SDLPanel(wx.Panel):
def __init__(self,parent,ID,tplSize):
global pygame
wx.Panel.__init__(self, parent, ID, size=tplSize)
self.Fit()
os.environ['SDL_WINDOWID'] = str(self.GetHandle())
os.environ['SDL_VIDEODRIVER'] = 'windib'
import pygame
pygame.init()
icon = pygame.Surface((1,1));icon.set_alpha(0);pygame.display.set_icon(icon)
global Surface
Surface = pygame.display.set_mode(tplSize)
self.thread = SDLThread(Surface)
self.thread.Start()
def __del__(self):
self.thread.Stop()
+0
謝謝,這給了我很多想法:) – hershey92 2012-07-01 13:22:57
0
我不認爲它的可能,因爲wxPython(使用wxWidgets C++)是一個窗口管理系統的包裝,它依靠OS功能在屏幕上繪製(它根據OS轉換爲正確的系統調用)。
Pygame使用SDL和一個簡單的代碼來管理窗口系統,它只需調用一些操作系統函數來創建窗口並將其提供給SDL,就像畫布一樣。
一種方法是:使用ctypes的,以使C調用到OS庫文件來繪製系統原生窗口部件,不使用任何pygame的功能,這樣
- 。
其他方式(醜陋的,如果作品不能肯定):
- 我不知道怎麼樣,但是找到一種方法,部件轉換爲圖像緩衝區對象,並使用它像面(純位圖)。
我認爲你應該做的:
使用pygame的,使用面和鼠標/鍵盤事件,以控制或下載一些預製的構建自己的GUI。
堅持使用wx,你可以在系統原生主題上輕鬆地構建你的GUI,也可以使用DC(繪製上下文)來繪製像pygame,也許(不確定)包含pygame上下文到wx作爲一個小部件。 你可以從wx擁有自己的事件處理程序中受益。
我希望它能以某種方式幫助你。
相關問題
- 1. 在pygame物理模擬中添加wxPython GUI元素
- 2. wxpython或pygame?
- 3. wxPython中添加行TextCtrl
- 4. 在wxpython中添加筆記本頁面
- 5. 添加照明Pygame
- 6. 在PyCharm IDE中添加pygame模塊
- 7. 在pygame中添加一個分數
- 8. wxPython或wxPython中的PyGame canvas - >哪個更快?
- 9. wxPython:添加一個about框。
- 10. wxpython:添加一個Listctrl組
- 11. 添加在Aliens.py碰撞在Pygame的
- 12. 在wxPython中加載DLL
- 13. png在pygame中加載
- 14. 如何在Pygame中將Rect或文本添加到Sprite中?
- 15. wxpython添加網格和菜單欄
- 16. wxpython將文件夾添加到listctrl?
- 17. 將項目添加到wxpython組合框...?
- 18. 將wxpython面板類添加到sizers
- 19. wxPython添加多選框選項
- 20. wxPython動態添加頁面到嚮導
- 21. 如何在wxPython中爲TextCtrl小部件添加標題?
- 22. 添加許多scrolledpanels一個scrolledPanel在wxPython中
- 23. wxPython - 在繼承類中添加新對象?
- 24. wxPython並在菜單欄中選擇時添加選項菜單
- 25. 如何在wxPython的網格中添加分隔符?
- 26. 在wxpython中單選按鈕旁邊添加圖像
- 27. 在wxpython的直方圖中添加文本
- 28. 如何在wxpython中並排添加兩個文本控件
- 29. 如何在wxPython中動態添加子菜單
- 30. 添加面板使用線程GUI來在wxPython中
它驚訝地知道python無法添加按鈕,在Java中它是非常簡單的。請證明我錯了! – hershey92 2012-01-10 03:03:49
http://stackoverflow.com/questions/8794506/adding-wxpython-gui-elements-in-a-pygame-physics-simulation的副本。請繼續更新您的原始問題,詳細瞭解您遇到的問題。 – 2012-01-10 17:14:04
這是可能的,因爲我以前做過。雖然我希望它更加兼容。 wxPython比任何pygame GUI庫都好得多。 PGU很糟糕!甚至不打擾下載它。它在你將pygame放入wxpython時可以做什麼是非常有限的,儘管GUI很明智,但它看起來不錯。 – thelost 2012-01-26 20:37:06