0

我正在尝试创建一个用于配置设置的 GTK python 应用程序,并且我一直在考虑使用 Glade 为该应用程序创建一个 GTK 设计。

到目前为止,我已经创建了一个包含 5 个笔记本的设计,它看起来有点像这样:

林间空地笔记本

但是,我实际上想使用带有主要样式工具栏按钮的 Gtktoolbar,当单击 Gtktoolbar 按钮时,这些按钮会在相邻窗格中打开设置。当前的 Gtkprimarytoolbar 实现如下所示:

林间空地工具栏

我对 Gtk 设计非常陌生,我尝试将on_tool_unitysettings_clicked信号设置为处理nb_unitysettings。我承认我不知道我在做什么。

这个想法是当我单击工具栏按钮时,相关的笔记本会加载到工具栏按钮下方的窗格中。我该怎么做?我会对 Glade 解决方案感到非常满意。

4

1 回答 1

0

当按下每个工具栏按钮时,我最终合并了上面的两个窗口并更改了笔记本的页面。我还隐藏了笔记本的标签,所以看起来根本就没有笔记本。

这是按下按钮时处理信号的python文件:

#!/usr/bin/env python3
from gi.repository import Gtk

class Handler ():
    '''Clicking the toolbars'''
    def on_tool_startpage_toggled(self,nb_mechanig):
        nb_mechanig.set_current_page(0)
    def on_tool_unitysettings_toggled(self,nb_mechanig):
        nb_mechanig.set_current_page(1)
    def on_tool_compizsettings_toggled(self,nb_mechanig):
        nb_mechanig.set_current_page(2)
    def on_tool_themesettings_toggled(self,nb_mechanig):
        nb_mechanig.set_current_page(3)
    def on_tool_desktopsettings_toggled(self,nb_mechanig):
        nb_mechanig.set_current_page(4)


# Basic builder setting up

builder = Gtk.Builder()
builder.add_from_file("mechanig.glade")
builder.connect_signals(Handler())

# The main Mechanig window that needs to be shown
mechanig_main = builder.get_object('mechanig_main')

# This signal is emitted when you close the window,
# which triggers Gtk.main_quit, which tells the main Gtk loop to quit
mechanig_main.connect("delete-event", Gtk.main_quit)

# This is required, otherwise Gtk leaves the window hidden.
# Useful, like with our dummy "windows" that get reparented
mechanig_main.show_all()

# Runs the main loop
Gtk.main()

窗口现在看起来像这样,这是我能得到的最接近我想要的东西:

Mechanig-glade-previewer

于 2012-11-18T22:34:47.327 回答