[单击按钮时python Gtk3返回值

问题描述 投票:0回答:1

我有一个主python程序A.py,它调用GUI Gtk python程序B.py来显示一个窗口。我希望此窗口是颜色按钮,当我单击它时,主要的A.py代码恢复一个值,即RGB颜色值。

A.py

import B
c = B.gui_color()
print(c)

B.py

class W(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="colors")
        self.box = Gtk.Box(spacing=0, homogeneous=True)
        self.add(self.box)

        colors = j.load("colors.json")

        for c in colors:
            b = Gtk.Button()
            b.connect("clicked", self.return_color, c["value"])
            # x257 to get the GTK color
            b.modify_bg(Gtk.StateType.NORMAL, Gdk.Color(c["value"][0] * 257, c["value"][1] * 257, c["value"][2] * 257))
            self.box.pack_start(b, True, True, 0)

    def return_color(self, widget, *color):
        self.close()
        return color[0]

def gui_color():
    w = W()
    w.connect("destroy", Gtk.main_quit)
    w.show_all()
    Gtk.main()

该程序一切正常,我的窗口带有多个颜色按钮,但是我不知道如何恢复单击的颜色。 return_color中的return操作不会返回到A.py程序。我该怎么做?我应该在打印时使用stdout吗?我精确地说,单击后,我想做其他完全不需要GUI的操作。

python user-interface events return gtk
1个回答
0
投票

return color[0]中的return_color之前执行self.selected_color = color[0],在Gtk.main()中执行return w.selected_color之后

© www.soinside.com 2019 - 2024. All rights reserved.