Это ошибка в Gtk. Например, это показывает, что значения R и G теряются:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
model = Gtk.ListStore(Gdk.RGBA)
bgcolor = Gdk.RGBA(red=0, green=0, blue=0, alpha=0)
model.append([bgcolor])
bgcolor = Gdk.RGBA(red=0.5, green=0.5, blue=0.5, alpha=0.5)
model.append([bgcolor])
bgcolor = Gdk.RGBA(red=1, green=1, blue=1, alpha=1)
model.append([bgcolor])
print(model[0][0])
print(model[1][0])
print(model[2][0])
Потому что результаты:
Gdk.RGBA(red=0.000000, green=0.000000, blue=0.000000, alpha=0.000000)
Gdk.RGBA(red=0.000000, green=0.000000, blue=0.500000, alpha=0.500000)
Gdk.RGBA(red=0.000000, green=0.000000, blue=1.000000, alpha=1.000000)
Некоторое время назад в Gnome / Gtk было зарегистрировано сообщение об ошибке, но я больше не могу его найти. Я верю, что он потерян, когда инфраструктура перешла на GitLab.
Возможный обходной путь - использовать отдельные столбцы для значений RGBA и каждый раз создавать / восстанавливать RGBA. Пример:
model = Gtk.ListStore(float, float, float, float)
in_color = Gdk.RGBA(red=0.5, green=0.5, blue=0.5, alpha=0.5)
model.append([in_color.red, in_color.green, in_color.blue, in_color.alpha])
out_color = Gdk.RGBA()
out_color.red = model[0][0]
out_color.green = model[0][1]
out_color.blue = model[0][2]
out_color.alpha = model[0][3]
print(out_color)