0

我正在尝试构建一个虚拟化网格容器,以在 Fedora 35 上的 PyGTK 4 中显示 100k+ 个文件。我成功地创建了运行良好的布局和滚动支持。

为了支持调整我的应用程序窗口的大小,我需要对改变它的大小做出反应。我已经连接到notify窗口的信号并处理、 和default-width事件default-height以更新布局的几何形状。但是,每次我在事件之后调用我的小部件/应用程序窗口时,我只能获得窗口最大化之前的宽度!这是设计使然吗?maximizedunmaximizedget_width()maximized

我一直在努力,但我无法为这个简单的问题找到可行的解决方案。谁能帮我?

编辑

这是一些代码来概述我如何尝试测量窗口大小。我修改了要使用的代码,connect_after而不是connect@GüntherWagner 建议的代码。但是,这两种方法的行为是相同的:

class TestLayout(Gtk.ScrolledWindow):
  def on_realize(self, widget):
    ...
    self.get_root().connect_after('notify', self.on_notify)

  def on_notify(self, widget, param):
     if param.name in [..., 'maximized', 'unmaximized']:
        self.draw()

  def draw(self):
      self.width = self.get_width()
      self.height = self.get_height()
4

0 回答 0