我正在使用Python GTK + 3.我无法在按钮信号中向GtkGrid添加数据(当我在信号中调用attach方法时没有发生任何事情)。这是代码:
# -*- coding: utf-8 -*-
from gi.repository import Gtk, GObject, Gdk
import sqlite3
class MainWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="1")
self.fullscreen()
MainBox = Gtk.Box()
MainBox.set_orientation(Gtk.Orientation.VERTICAL)
self.add(MainBox)
self.table = Gtk.Grid()
self.table.set_column_spacing(10)
MainBox.pack_start(self.table, False, True, 0)
btn_add = Gtk.Button("ADD VALS")
btn_add.connect("clicked", self.add_kopd)
MainBox.pack_start(btn_add, False, True, 0)
self.table.attach(Gtk.Label("1"), 0,0,1,1)
self.table.attach(Gtk.Label("2"), 1,0,1,1)
self.table.attach(Gtk.Label("3"), 2,0,1,1)
def add_kopd(self, widget):
self.table.attach(Gtk.Label("4"), 0,1,1,1)
self.table.attach(Gtk.Label("5"), 1,1,1,1)
self.table.attach(Gtk.Label("6"), 2,1,1,1)
win = MainWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
答案 0 :(得分:2)
您需要设置要显示的新小部件。在GTK中,默认情况下不会显示任何内容。将add_kopd方法修改为:
def add_kopd(self, widget):
self.table.attach(Gtk.Label("4"), 0,1,1,1)
self.table.attach(Gtk.Label("5"), 1,1,1,1)
self.table.attach(Gtk.Label("6"), 2,1,1,1)
self.show_all()
或者,如果您不想调用show_all()
def add_kopd(self, widget):
window, attachment = self.table.attach(Gtk.Label("4"), 0,1,1,1)
attachment.show()
...