python-3.x - Python将标签添加到父小部件
问题描述
我目前有这个代码:
import gi
import gettext
_ = gettext.gettext
gi.require_version('Gtk', '3.0')
gi.require_version('Gdk', '3.0')
from gi.repository import Gtk, Gio, GLib
class Invoicy(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Invoicy")
self.set_border_width = 10
self.set_default_size(800, 600)
header_bar = Gtk.HeaderBar()
header_bar.set_show_close_button(True)
header_bar.props.title = "Invoicy"
self.set_titlebar(header_bar)
newbutton = Gtk.Button(None,image=Gtk.Image.new_from_gicon(Gio.ThemedIcon(name="document-new"), Gtk.IconSize.LARGE_TOOLBAR))
header_bar.pack_start(newbutton)
menubutton = Gtk.Button(None,image=Gtk.Image.new_from_gicon(Gio.ThemedIcon(name="open-menu"), Gtk.IconSize.LARGE_TOOLBAR))
menubutton.connect("clicked", self.settingsdialog)
header_bar.pack_end(menubutton)
label = Gtk.Label("test")
self.add(label)
win = Invoicy()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
现在我想要,当我点击newbutton
调用一个在主窗口中添加新标签的函数时。这可能吗?如果是,我该怎么做?我现在试了几个小时。谢谢。
解决方案
您必须调用connect
“newbutton”上的方法来添加添加标签的回调处理函数。
newbutton.connect("clicked", self.on_newbutton_clicked)
以及您的类中的回调处理程序方法Window
:
def on_newbutton_clicked(self, button):
label = Gtk.Label("test")
self.add(label)
推荐阅读
- c# - 自重启自包含单文件 dotnet 核心控制台应用程序
- php - 调整图片大小,添加水印,然后保存
- javascript - 如何将 AJAX 成功变量存储为 AJAX 之外的变量?
- javascript - 你如何用反应钩子做点符号反应组件?
- asp.net - 我怎样才能获得剑道网格数据项
- css - 奇怪的 CSS 错误,在 Redux 存储更改时重新渲染 React 中的元素
- c - 有没有办法测试 regex_t 实例是否成功编译?
- reactjs - React Native Storybook - TypeError:identifier.indexOf 不是函数
- reactjs - React useCallback 和 useEffect 同时搞乱了状态
- c - 从函数调用初始化结构