在pygame窗口中创建一个ToolBar

时间:2014-07-26 11:46:02

标签: python pygame toolbar pgu

如何在pygame中创建工具栏?我对此进行了初步搜索......并从http://en.flossmanuals.net/make-your-own-sugar-activities/making-activities-using-pygame/了解了它...但是gi.repository在Windows中不起作用(我目前正在处理)。是否有任何其他库在python中也可以在Windows中工作,以便我可以添加..我实际上正在开发GUI(广义上可以解释为类似于文件夹中的图像保持在pygame窗口中向右滚动而且还有pan n实现缩放功能。我只想在那个pygame窗口中有一个“TOOL BAR”,并有两个按钮来暂停和开始滚动。

1 个答案:

答案 0 :(得分:3)

所以,考虑到这些评论(即你必须自己在pygame中制作),我自己没有更好的事情,所以我将概述你如何做到这一点。

将工具栏定义为一个类,您可以将其放在窗口顶部并让它处理按钮:

class Toolbar:
    def __init__(self, width, height): #And other customisation options
        self.image = pygame.Surface(width, height)
        self.image.fill(colour)
        self.rect = self.image.get_rect()
        self.rect.topleft = (0,0)
        self.leftbutton = ButtonClass(args)
        self.rightbutton = ButtonClass(args)

    def update(self):
        self.leftbutton.hover() #to animate an effect if the mouse hovers over
        self.rightbutton.hover()

    def draw(self, screen):
        screen.blit(self.image, self.rect)
        screen.blit(self.leftbutton.draw(), self.leftbutton.getRect())
        screen.blit(self.rightbutton.draw(), self.rightbutton.getRect())

    def click(pos):
        if self.leftbutton.getRect().collidepoint(pos):
            self.leftbutton.click()

        if self.rightbutton.getRect().collidepoint(pos):
            self.rightbutton.click()

这需要一个你自己可以制作的按钮类,但是你也可以查看我的网站可用的模块(我对方法调用的想法)http://tarqnet.sytes.net/projects/project-Pygame.html

从这里开始,设置您的工具栏并在主循环中处理它:

toolbar = Toolbar(screen_width, 80)

while True:
    toolbar.update()
    toolbar.draw(screen)

    #Other stuff
    ## Events:
    ## on left click call toolbar.click(pos)