我目前正在用Python开发一个使用GTK+ (和Glade)的小应用程序。到目前为止,所有的东西都很容易集成,直到我想出了添加选项卡而不是弹出窗口的想法。注意:仍在使用Python 2.7+
有什么简单的方法来实现像结构这样的新选项卡(笔记本)中已经存在的页面吗?,我很难找到如何在glade中创建的每个单独的选项卡中添加内容。或许有一个更“清晰”的问题:,使用每个不同的选项卡调用特定的V/HBox需要什么笔记本函数?当前的结构看起来像(减去菜单/ statusbar):
[ 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编码并不陌生,但是界面.;)
发布于 2014-02-26 10:15:11
没有回答,但看起来"another.anon.coward“已经在评论中回答了这个问题.
如果双击选项卡,则会选择该页在glade中添加内容。您可以继续添加该页面的内容。至于切换,您可以使用set_current_page切换到要显示其内容的页面。注册“切换页”信号,以了解已切换到哪一页。
发布于 2022-01-04 21:21:15
单击左侧的小部件资源管理器(对象检查器)上的笔记本小部件。然后使用左右键盘箭头键从选项卡移动到选项卡。你也可以双击标签标签,就像他在回答中所说的那样。但是,如果您想要这样做,可以使用get_object类的Gtk.builder方法从ui中获得笔记本对象。然后执行此操作以添加页面
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。您可以查看笔记本这里的信号列表。
https://stackoverflow.com/questions/16744702
复制