2015-01-10 2 views
2

pykame에서 tkinter와 정확히 같은 메뉴 바를 만들고 싶습니다.파이 게임을위한이 tkinter 메뉴 바 생성 방법

from tkinter import * 
def donothing(): 
    filewin = Toplevel(root) 
    button = Button(filewin, text="Do nothing button") 
    button.pack() 

root = Tk() 
menubar = Menu(root) 
filemenu = Menu(menubar, tearoff=0) 
filemenu.add_command(label="New", command=donothing) 
filemenu.add_command(label="Open", command=donothing) 
filemenu.add_command(label="Save", command=donothing) 
filemenu.add_command(label="Save as...", command=donothing) 
filemenu.add_command(label="Close", command=donothing) 

filemenu.add_separator() 

filemenu.add_command(label="Exit", command=root.quit) 
menubar.add_cascade(label="File", menu=filemenu) 
editmenu = Menu(menubar, tearoff=0) 
editmenu.add_command(label="Undo", command=donothing) 

editmenu.add_separator() 

editmenu.add_command(label="Cut", command=donothing) 
editmenu.add_command(label="Copy", command=donothing) 
editmenu.add_command(label="Paste", command=donothing) 
editmenu.add_command(label="Delete", command=donothing) 
editmenu.add_command(label="Select All", command=donothing) 

menubar.add_cascade(label="Edit", menu=editmenu) 
helpmenu = Menu(menubar, tearoff=0) 
helpmenu.add_command(label="Help Index", command=donothing) 
helpmenu.add_command(label="About...", command=donothing) 
menubar.add_cascade(label="Help", menu=helpmenu) 

root.config(menu=menubar) 
root.mainloop() 

이 코드는 tkinter 코드이지만 동일한 방법으로 파이 게임에서 만드는 방법을 알고 있습니까?

감사합니다.

답변

0

내가 그것을 파이 게임Tkinter를 도구 모음을 통합 할 하지 가능하다고 생각, 그들은 다른 도구이다.

나는 당신이 할 수있는 볼 수있는 유일한 것은 하나의 주요 장면의 화면의 일부로 만든 (버튼을 생성 할 수있는 도구 모음에 대한 다른를 사용하여, 파이 게임 직접 도구 모음을 만드는 것입니다 직사각형 또는 유사한 물체).

당신은 그 당신이 서로 싸우는 2 개 주 루프이 때문에, 바람직하지 (별도의 Tkinter를 루트 윈도우를 생성하는 또 다른 옵션도 한 다음 Tkinter를 응용 프로그램의 하나는 에서 하나를 pygame 응용 프로그램)을 실행하고 파이 게임 주 응용 프로그램과 병행하여 실행하십시오.

는 두 번째 옵션에 대한 당신을 도울 수있는 몇 가지 게시물입니다

  1. Is there anything I need aware of using Tkinter and pygame together?

  2. What gui toolkit should I use with Pygame?

  3. What's the best way to add a GUI to a Pygame application?

  4. Mac and Windows compatible GUI for Python, which is easy to install and works with pygame?

  5. Python Game using pyGame with Window Menu elements

분명히, 당신은 또한 당신이 정상wxPython을 창 내부 파이 게임 창을 통합 할 수 있습니다 라이브러리 wxPython을 사용할 수 있습니다.

2

나는 tkiter와 파이 게임을 결합하기 위해 os.environ을 사용하므로 Tkinter를 하나 내에서 파이 게임 창이있다 :

embed = Frame(root, width=w, height=h) 
embed.pack() 
def donothing(): 
    filewin = Toplevel(root) 
    button = Button(filewin, text="Do nothing button") 
    button.pack() 

root = Tk() 
menubar = Menu(root) 
filemenu = Menu(menubar, tearoff=0) 
filemenu.add_command(label="New", command=donothing) 
filemenu.add_command(label="Open", command=donothing) 
filemenu.add_command(label="Save", command=donothing) 
filemenu.add_command(label="Save as...", command=donothing) 
filemenu.add_command(label="Close", command=donothing) 

filemenu.add_separator() 

filemenu.add_command(label="Exit", command=root.quit) 
menubar.add_cascade(label="File", menu=filemenu) 
editmenu = Menu(menubar, tearoff=0) 
editmenu.add_command(label="Undo", command=donothing) 

editmenu.add_separator() 

editmenu.add_command(label="Cut", command=donothing) 
editmenu.add_command(label="Copy", command=donothing) 
editmenu.add_command(label="Paste", command=donothing) 
editmenu.add_command(label="Delete", command=donothing) 
editmenu.add_command(label="Select All", command=donothing) 

menubar.add_cascade(label="Edit", menu=editmenu) 
helpmenu = Menu(menubar, tearoff=0) 
helpmenu.add_command(label="Help Index", command=donothing) 
helpmenu.add_command(label="About...", command=donothing) 
menubar.add_cascade(label="Help", menu=helpmenu) 

root.config(menu=menubar) 
: 파이 게임이 될 수 있도록 내가 프레임을 추가
from tkinter import * 
from pygame import * 
from pygame.locals import * 
import os 

# Tell pygame's SDL window which window ID to use 
os.environ['SDL_WINDOWID'] = str(embed.winfo_id()) 
# Show the window so it's assigned an ID. 
root.update() 

# Usual pygame initialization 
pygame.init() 

은 어떻게 든 도움이되기를 바랍니다 :

그리고 여기에 추가 된 싸다입니다!