我正在尝试创建一个用于配置设置的GTK python应用程序,我一直在寻找使用Glade为应用程序创建GTK设计。
到目前为止,我已经创建了一个包含5个笔记本的设计,看起来有点像这样:
但是,我实际上想要使用带有主要工具栏按钮的Gtktoolbar,当单击Gtktoolbar按钮时,它会打开相邻窗格中的设置。当前的Gtkprimarytoolbar实现如下所示:
我是Gtk设计的新手,我尝试设置on_tool_unitysettings_clicked
信号来处理nb_unitysettings
。我承认我不知道自己在做什么。
这个想法是当我点击工具栏按钮时,相关的笔记本被加载到工具栏按钮下方的窗格中。我到底该怎么做?我对Glade解决方案非常满意。
答案 0 :(得分: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()
窗口现在看起来像这样,这是我能得到的最接近的东西: