python - 如何使 pygtk 中的选项卡可关闭?

标签 python tabs gtk pygtk

我正在使用 python 和 gtk,试图制作一个带有选项卡的简单文本编辑器,我还是新手,所以我想知道如何使选项卡可关闭和重新记录?在 qt 中要容易得多,但我更喜欢 gtk。这是我的代码:

import gtk
from tab import *

 class Dash(gtk.Notebook):
    def __init__(self):
        super(gtk.Notebook,self).__init__()
        self.defaultTab()

    def defaultTab(self):
        tab = Tab()
        self.append_page(tab.child,tab.label)

另一个模块“选项卡”有一些变量:

from launchers import *

class Tab():
    def __init__(self):
        self.label = gtk.Label("New Tab")
        self.type = "dash"
        launchers = Launchers()
        self.child = launchers

那我该怎么办?

最佳答案

在将新页面附加到 gtk.Notebook 时,您需要创建一个 gtk.HBox,而不是使用 gtk.Label包含 gtk.Labelgtk.Button。或多或少,像这样:

class Dash(gtk.Notebook):
...
    def defaultTab(self):
        self.append_page(tab.child,tab.header)
...
class Tab():
    def __init__(self):
        ...
        header = gtk.HBox()
        title_label = gtk.Label()
        image = gtk.Image()
        image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)
        close_button = gtk.Button()
        close_button.set_image(image)
        close_button.set_relief(gtk.RELIEF_NONE)
        self.connect(close_button, 'clicked', self.close_cb)

        header.pack_start(title_label,
                          expand=True, fill=True, padding=0)
        header.pack_end(close_button,
                        expand=False, fill=False, padding=0)
        header.show_all()
        self.header = header
        ...

这只是为了显示关闭按钮。要真正关闭选项卡,您需要处理来自按钮的 clicked 信号。

关于python - 如何使 pygtk 中的选项卡可关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850043/

相关文章:

c# - 如何在打开某些选项卡时停止运行保存按钮功能

c - 如何在 gtk3 中获得事件的 gtk 窗口?

python - 填充行时更改Excel文件中的行

python - 如何在 Pandas 中量化日期时间索引,并为每列提供一个操作?

tabs - Crosh Shell 作为默认新标签页

android - 我的 Android TabHost 崩溃会出现 NullPointer 异常

python - Cython 可以加速对象迭代数组吗?

python - 将类方法绑定(bind)到外部函数

Python - 为什么删除小部件后,然后从另一个方法添加它无法添加相同的小部件?

c - 体系结构 x86_64 : "_g_object_unref" 的 undefined symbol