示例#1
0
文件: ccgui.py 项目: sumchege/miniecu
    def __init__(self):
        builder = get_builder('ccgui.ui')
        self.window = builder.get_object('ccgui_window')
        builder.connect_signals(self)

        self.rpm_gauge = GtkGauge()
        self.rpm_gauge.name = 'RPM\n<span foreground="orange"><i><small>x1000</small></i></span>'
        self.rpm_gauge.start_value = 0
        self.rpm_gauge.end_value = 10
        self.rpm_gauge.initial_step = 1
        self.rpm_gauge.sub_step = 0.2
        self.rpm_gauge.drawing_step = 1
        self.rpm_gauge.strip_color_order = 'GYR'
        self.rpm_gauge.green_strip_start = 0
        self.rpm_gauge.yellow_strip_start = 7
        self.rpm_gauge.red_strip_start = 8
        self.rpm_gauge.smooth_interval = 50

        self.temp_gauge = GtkGauge()
        self.temp_gauge.name = 'Temp\n<span foreground="orange"><i>°C</i></span>'
        self.temp_gauge.start_value = 0
        self.temp_gauge.end_value = 130
        self.temp_gauge.initial_step = 10
        self.temp_gauge.sub_step = 2.0
        self.temp_gauge.drawing_step = 20
        self.temp_gauge.strip_color_order = 'GYR'
        self.temp_gauge.green_strip_start = 0
        self.temp_gauge.yellow_strip_start = 100
        self.temp_gauge.red_strip_start = 110
        self.temp_gauge.smooth_interval = 50

        self.batt_gauge = GtkGauge()
        self.batt_gauge.name = 'Battery\n<span foreground="orange"><i>V</i></span>'
        self.batt_gauge.start_value = 0
        self.batt_gauge.end_value = 12
        self.batt_gauge.initial_step = 1
        self.batt_gauge.sub_step = 0.2
        self.batt_gauge.drawing_step = 2
        self.batt_gauge.strip_color_order = 'RYG'
        self.batt_gauge.green_strip_start = 5
        self.batt_gauge.yellow_strip_start = 4
        self.batt_gauge.red_strip_start = 0
        self.batt_gauge.smooth_interval = 50

        gbox = builder.get_object('gauge_box')
        gbox.pack_start(self.rpm_gauge, True, True, 0)
        gbox.pack_start(self.temp_gauge, True, True, 0)
        gbox.pack_start(self.batt_gauge, True, True, 0)

        # Status message tree view
        self.status_treeview = builder.get_object('status_treeview')
        self.status_store = Gtk.ListStore(str, str)
        self.status_treeview.set_model(self.status_store)
        renderer1 = Gtk.CellRendererText()
        renderer2 = Gtk.CellRendererText()
        column1 = Gtk.TreeViewColumn("Field", renderer1, text=0)
        column2 = Gtk.TreeViewColumn("Value", renderer2, text=1)
        self.status_treeview.append_column(column1)
        self.status_treeview.append_column(column2)

        self.window.set_default_size(640, 480)
        self.window.show_all()

        # store ref to some widgets
        self.param_listbox = builder.get_object('param_listbox')
        self.status_bar = builder.get_object('status_bar')
        self.ignition_switch = builder.get_object('ignition_switch')
        self.starter_switch = builder.get_object('starter_switch')

        # param widgets
        self.param_rows = {}

        # connect model signals
        ParamManager().sig_changed.connect(self.update_params)
        StatusManager().sig_changed.connect(self.update_status)
        StatusTextManager().sig_changed.connect(self.update_statustext)