lambcutlet
Posts: 14
Joined: Mon Aug 18, 2014 7:56 pm

Adwaita theme missing

Tue Jan 03, 2017 8:06 pm

i have a recurring problem when running a program with a GUI, below is an example.
I want the textbox background to be black with green text. Move the slider to update the text in the textbox.

The problem is the textbox background remains white and I continually have this warning when I run the program.
(gtkscale2.py:3523): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:2:19:Theming engine 'adwaita' not found
Running the same code on my main pc with fedora, I have no such error and the textbox background shows black as expected.
My raspberry pi is missing something? But I don't know what it is, I have googled and haven't come up with a resolution hence my question. The pi runs 'jessie' with all the latest updates, can you help?

Code: Select all

#!/usr/bin/env python

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GObject
import random

class Handler:
	def __init__(self):
		self.builder = Gtk.Builder()
		self.builder.add_from_file("gtkscale2.glade")
		self.builder.connect_signals(self)
		self.window = self.builder.get_object("window1")
		self.window.set_default_size(240, 120)
		self.hscale = self.builder.get_object("hscale")
		self.text_window = self.builder.get_object("text_window")
		self.text_window.modify_fg(Gtk.StateFlags.NORMAL, Gdk.color_parse("light green"))
		self.text_window.modify_bg(Gtk.StateFlags.NORMAL, Gdk.color_parse("black"))

	def adjustment1_value_changed_cb(self, x):
		number = self.hscale.get_value()
		self.text_window.set_text("%.2f V" % (number))

if __name__ == "__main__":
	app = Handler()
	app.window.show_all()
	Gtk.main()
GUI named 'gtkscale2.py'

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
  <requires lib="gtk+" version="3.14"/>
  <object class="GtkAdjustment" id="adjustment1">
    <property name="upper">40</property>
    <property name="value">10</property>
    <property name="step_increment">0.01</property>
    <property name="page_increment">10</property>
    <signal name="value-changed" handler="adjustment1_value_changed_cb" swapped="no"/>
  </object>
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <child>
      <object class="GtkBox">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="orientation">vertical</property>
        <child>
          <object class="GtkLabel">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">hi</property>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkScale" id="hscale">
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="adjustment">adjustment1</property>
            <property name="lower_stepper_sensitivity">on</property>
            <property name="upper_stepper_sensitivity">on</property>
            <property name="show_fill_level">True</property>
            <property name="round_digits">2</property>
            <property name="digits">2</property>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">False</property>
            <property name="position">1</property>
          </packing>
        </child>
        <child>
          <object class="GtkEntry" id="text_window">
            <property name="visible">True</property>
            <property name="can_focus">True</property>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">2</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>

lambcutlet
Posts: 14
Joined: Mon Aug 18, 2014 7:56 pm

Re: Adwaita theme missing

Fri Jan 06, 2017 9:03 pm

Update:
using a fresh image of 'jessie' (2016-11-25-raspbian-jessie.img) rather than my previously 'wheezy' to 'jessie' upgraded image has resolved the Adwaita problem.
Also when the program with the added Pango font change. Now works when run as sudo but not as normal user, previously this did not function at all.

Code: Select all

from gi.repository import Pango
text_font = "Sans Bold 32"
self.text_window.modify_font(Pango.FontDescription(text_font))
The gtkentry (textbox) background still remains as default white.

Return to “Python”