繁体   English   中英

单击按钮时python Gtk3返回值

[英]python Gtk3 return value when button clicked

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

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 中的返回操作不会返回到 A.py 程序。 我怎样才能做到这一点? 我应该在打印时使用标准输出吗? 我确切地说,在单击后,我想做一些根本不需要 GUI 的操作。

return_color return color[0] return_colorself.selected_color = color[0] ,在Gtk.main()return w.selected_color

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM