Kivy 小部件隐藏在 Windows 标题栏下

Posted

技术标签:

【中文标题】Kivy 小部件隐藏在 Windows 标题栏下【英文标题】:Kivy widget is hidden under Windows titlebar 【发布时间】:2017-12-28 22:15:58 【问题描述】:

我一直在尝试在 Kivy 中创建一个简单的井字游戏应用程序。我从布局 UI 开始,发现顶部隐藏在 Windows 标题栏下。我试图在 Kivy 文档、*** 等中寻找答案,但没有运气。

这是一个截图供参考:Titlebar covering up part of Kivy app

.kv 文件

#:kivy 1.0.9

BoxLayout:
    orientation: "vertical"
    ActionBar:
        ActionView:
            use_separator: True
            ActionPrevious:
                title: 'Action Bar'
                with_previous: False
            ActionOverflow:
            ActionButton:
                text: 'Btn0'
                icon: 'atlas://data/images/defaulttheme/audio-volume-high'
            ActionButton:
                text: 'Btn1'
            ActionGroup:
                text: 'Group1'
                ActionButton:
                    text: 'Btn2'
    TicTacToeGrid:

<GridEntry>:
    font_size: self.height
    background_color: 0, 0, 0, 0

<TicTacToeGrid>:
    cols: 3
    canvas.after:
        Color:
            rgba: 0.149, 0.102, 0.051, 1.0
        Line:
            points: self.width/3, self.center_y - (self.height * 0.45), self.width/3, self.center_y + (self.height * 0.45)
            width: 2
        Line:
            points: self.width*2/3, self.center_y - (self.height * 0.45), self.width*2/3, self.center_y + (self.height * 0.45)
            width: 2

        Line:
            points: self.center_x - (self.width * 0.45), self.height/3, self.center_x + (self.width * 0.45), self.height/3
            width: 2
        Line:
            points: self.center_x - (self.width * 0.45), self.height*2/3, self.center_x + (self.width * 0.45), self.height*2/3
            width: 2

.py 文件

from kivy.uix.gridlayout import GridLayout
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.properties import ListProperty


class GridEntry(Button):
    coords = ListProperty([0, 0])


class TicTacToeGrid(GridLayout):
    '''Kivy widget for the tic-tac-toe board'''

    def __init__(self, *args, **kwargs):
        super(TicTacToeGrid, self).__init__(*args, **kwargs)
        for row in range(3):
            for column in range(3):
                grid_entry = GridEntry(
                    coords=(row, column))
                grid_entry.bind(on_release=self.button_pressed)
                self.add_widget(grid_entry)

    def button_pressed(self, button):
        '''Print output just to see what's going on'''
        print(' button clicked!'.format(button.coords))


class TicTacToeApp(App):
    '''Tic-tac-toe app using Kivy'''

    def build(self):
        Window.clearcolor = (0.688, 0.664, 0.640, 1)
        return self.root


if __name__ == "__main__":
    TicTacToeApp().run()

我们将不胜感激。

【问题讨论】:

Brendan 我无法重现它。我在 Windows 10 上使用 kivy 1.10.0 和 kivy 1.9.1 以及在 Arch Linux (KDE) 上使用 kivy 1.10.0 测试了您的代码,应用看起来不错。 它也适用于我,windows 10 kivy 1.9.1 我发现切换到我的 dGPU 而不是集成显卡解决了这个问题。我应该如何解决这个问题?无论它使用哪种显卡,我都希望它能够正常工作...... 我在 Windows 10 x64 的戴尔 XP 15 上发现了同样的问题。 @rlat 这很奇怪,我也在使用 XPS 15。 【参考方案1】:

我最近在我的戴尔 XPS 15 上遇到了完全相同的问题。通过设备管理器更新集成图形处理器的驱动程序在我的设置中解决了这个问题,你试过了吗?

【讨论】:

我这里也遇到了同样的问题,按照你说的更新了集成图形处理器,也解决了我的问题,非常感谢!!!

以上是关于Kivy 小部件隐藏在 Windows 标题栏下的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏主窗口标题栏并在 kivy 框架中放置透明背景?

在没有终端的情况下打开 kivy 小部件?

如何引用似乎超出范围的小部件 - 改编的 kivy/examples/demo/images

使 Kivy TextInput 框架不可见但显示文本

如何隐藏 Qt 小部件应用程序菜单栏?

如何在 Kivy 中隐藏 ActionButton?