gpt4 book ai didi

python - 设计和更改 GTK 界面的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:09 26 4
gpt4 key购买 nike

我正在使用 GTK3 和 Glade 设计一个 python 程序。它需要根据用户需要构建的内容更改界面。

第一个界面是这样的:

____________________________________________________
| Label one | Text entry one | Save object button |
| Label two | Text entry two | |
____________________________________________________

它位于 Gtk.Box() 内的顶层窗口中,设置为垂直,Gtk.Grid() 作为框一侧的标签和文本条目,保存部分的保存对象按钮盒子。 (我的界面实际上比表格中有更多标签、文本条目、切换按钮、组合框等的界面复杂得多)。如果你想看,在http://sourceforge.net/projects/createlauncher。 .

如果用户需要构建另一个对象,它看起来像:

________________________________________________________
| Label three | Text entry three | Save object button |
| Label four | Text entry four | |
________________________________________________________

对于如何实现变更有哪些建议?

我想过跟踪标签一二和条目一二,然后隐藏它们并显示其他的,但这会扰乱格式。如果需要切换回来,我已经搞砸了删除每个小部件并重建。这是很多工作。由于我使用的是 Glade,因此很难创建一个单独的“区域”,因为我考虑删除 Gtk.Box() 并根据其他界面需求重新制作它,但这似乎无法使用 Glade。

我对所有选项持开放态度。

最佳答案

复合自定义小部件?

class ObjectOneSettings(Gtk.Grid):
def __init__(self):
Gtk.Grid.__init__(self)
self.label_one = Gtk.Label('Label One')
self.label_two = Gtk.Label('Label Two')
self.entry_one = Gtk.Entry()
self.entry_two = Gtk.Entry()
self.attach(self.label_one, 0, 0, 1, 1)
self.attach(self.label_two, 0, 1, 1, 1)
self.attach(self.entry_one, 1, 0, 1, 1)
self.attach(self.entry_two, 1, 1, 1, 1)

然后,您可以销毁 ObjectOneSettings 小部件,并在需要更改窗口时将其替换为 ObjectTwoSettings 小部件。

关于python - 设计和更改 GTK 界面的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com