首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PGU中自动向下滚动

在PGU中自动向下滚动
EN

Stack Overflow用户
提问于 2015-02-26 06:58:31
回答 1查看 81关注 0票数 0

我使用PGU作为游戏的图形用户界面,我正在用pygame的python3编写游戏。这个游戏将有多人在其中,所以我一直在研究一个游戏中的聊天系统。聊天系统可以正常工作并显示在滚动区域中,但当接收到新消息时,滚动区域不会自动向下滚动。这意味着每次有新消息时,用户都需要手动向下滚动才能阅读新消息。有谁知道用PGU做这件事的方法吗?或者有人有关于替代方法的建议?我自己环顾四周,发现了this example,它表明这是可以做到的,但是发布在那里的代码似乎没有显示我正在寻找的部分。这是我自己代码的简化版本。当接收到聊天消息时,将自动调用聊天消息。

代码语言:javascript
复制
class ChatScreen:
    def __init__(self):
        self.desktop = gui.Desktop(theme=gui.Theme("data/themes/default/"))
        self.container = gui.Container(width=800,height=600)
        self.chatinput = gui.Input(size=65)
        self.chatdoc = gui.Document(width=1, height=10)
        self.chatscroll = gui.ScrollArea(self.chatdoc,width=600,height=100,hscrollbar=False)

        self.container.add(self.chatinput, 10, 550)
        self.container.add(self.chatscroll, 10, 440)
        self.desktop.init(self.container)

    def chatmessage(self, message):
        self.chatdoc.add(gui.Label(message))
        self.chatdoc.br(1)
EN

回答 1

Stack Overflow用户

发布于 2015-03-09 15:31:05

我为这个问题找到了自己的解决方案。我正在为将来可能有这个问题的任何其他人张贴答案。下面是我的更新后的示例代码:

代码语言:javascript
复制
class ChatScreen:
    def __init__(self):
        self.desktop = gui.Desktop(theme=gui.Theme("data/themes/default/"))
        self.container = gui.Container(width=800,height=600)
        self.chatinput = gui.Input(size=65)
        self.chatdoc = gui.Document(width=1, height=10)
        self.chatscroll = gui.ScrollArea(self.chatdoc,width=600,height=100,hscrollbar=False)

        self.container.add(self.chatinput, 10, 550)
        self.container.add(self.chatscroll, 10, 440)
        self.desktop.init(self.container)

    def chatmessage(self, message):
        self.chatdoc.add(gui.Label(message))
        self.chatdoc.br(1)
        self.desktop.loop()
        self.chatscroll.set_vertical_scroll(someint)

我发现set_vertical_scroll()强制设置滚动区域的位置。通过将someint设置为大于聊天框中的消息数量的数字,它将进入底部。在实际的工作解决方案中,某些内容需要是一个随着消息数量增加而增加的变量,或者必须对显示的消息数量进行限制(这就是我对我的项目所做的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28731310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档