繁体   English   中英

Python GTK(Glade)笔记本

[英]Python GTK (Glade) Notebook

我目前正在使用 GTK+(和 Glade)在 Python 中开发一个小型应用程序。 到目前为止,一切都很容易集成,直到我想出了添加选项卡而不是弹出窗口的想法。 注意:仍然使用 Python 2.7+

有没有什么简单的方法可以在新标签(笔记本)之类的结构中实现现有页面? 我很难找到如何为在 Glade 中创建的每个单独的选项卡添加内容。 也许有一个更“明确”的问题:使用每个不同的选项卡调用特定的 V/HBox 需要什么 Notebook 函数? 当前结构看起来像(减去菜单/状态栏):

[ mainWindow ] --> (1) mainOverview (gtkVbox) --> (2A) mainContent (gtkHbox) ... other non-related content

我希望的结构看起来像:

[ mainWindow ] --> (1) mainOverview --> (2) noteBook --> (3) Tab1 --> (4) mainContent (gtkHbox) -- (3) Tab2 --> (4) secondaryContent (gtkHbox)

应用程序本身在没有选项卡的情况下运行良好(多线程,功能齐全), mainContent(gtkHbox)包含一个文件/递归目录分析器、几个复选框和一个总体概述。 我希望的一种简单的方法来显示该主窗口( gtkHbox仅具有当) Tab1选择。

很难找到好的参考页面,这些页面显示了按笔记本选项卡调用内容页面的正确方法。 非常感谢任何参考页面或有用的链接! 到目前为止,谢谢! 如果这是一个相当新的问题,我很抱歉,我对 Python 编码并不陌生,但另一方面,接口......;)

不是答案,但看起来像“another.anon.coward”已经在评论中回答了这个问题......

如果双击选项卡,则选择该页面以在glade中添加内容。 您可以继续为该页面添加内容。 至于切换,您可以使用set_current_page切换到要显示其内容的页面。 注册“switch-page”信号以找出切换到的页面。

单击空地左侧的小部件浏览器(对象检查器)上的笔记本小部件。 然后使用左右键盘箭头键在选项卡之间移动。 您也可以双击选项卡的标签,如pyrotherm 在他的回答中所说。 但是,如果您想以编程方式执行此操作,请使用 Gtk.builder 类的 get_object 方法从 ui 中获取 notebook 对象。 然后执行此操作以添加页面

builder = Gtk.Builder()
builder.add_from_file("example.glade")

self.notebook = builder.get_object("notebook1") # set the id of the notebook in glade
self.page1 = Gtk.Box()
self.page1.add(Gtk.Label(label="Default Page!"))
self.notebook.append_page(self.page1, Gtk.Label(label="Plain Title"))

现在添加你想要的内容。 现在是信号。 Pyrotherm 已经给出了答案。 虽然没有名为 switch-page 的信号。 其名为 switch_page。 您可以在此处查看笔记本的信号列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM