コード例 #1
0
ファイル: main.py プロジェクト: sdp-2011/sdp-6
    def __init__(self):

        # get a logger
        self.log = logging.getLogger("GTK_Main")

        # save init values
        self.fullscreen = False  # this is technicaly not consistant as it is not chnaged on system uests
        self.robot = Robot(self.BT_ADDRESS)
        self.feed_radio = "real"
        self.fix_colour = False
        self.half_time = False

        # do some jazz to see if we are on dice and or video pc
        self.hostname = gethostname()
        self.are_in_inf = False
        self.are_on_vision_pc = False
        if self.hostname.endswith("inf.ed.ac.uk"):
            self.are_in_inf = True
            if self.hostname.split(".")[0] in [
                    "lappy", "mitsubishi", "lexus", "honda"
            ]:
                self.are_on_vision_pc = True

        # setup the window
        builder = gtk.Builder()
        builder.add_from_file("main_ui.xml")

        self.window = builder.get_object("window_main")

        # change out the image with are video widget
        video_holder_box = builder.get_object("box_videoHolder")
        video_holder_img = builder.get_object("image_videoHolder")
        self.gst = GstDrawingArea()
        video_holder_box.remove(video_holder_img)
        video_holder_box.add(self.gst)

        # connect to GUI events
        self.window.set_events(gtk.gdk.KEY_PRESS_MASK
                               | gtk.gdk.KEY_RELEASE_MASK)
        self.window.connect("key_press_event", self.on_key_press)
        self.window.connect("key_release_event", self.on_key_release)
        self.window.connect("destroy", self.clean_quit)
        builder.connect_signals(self)

        # get all wigets that are needed later
        self.table_manualControl = builder.get_object("table_manualControl")

        # show the GUI
        self.gst.show()
        self.window.show()

        self.log.debug("GTK windows complete")
コード例 #2
0
    def __init__(self):
        # save init values
        self.fullscreen = False  # this is technicaly not consistant as it is not chnaged on system uests
        self.robot = None

        self.log = logging.getLogger("GTK_Main")

        self.state = self.STATE_IDLE

        # do some jazz to see if we are on dice and or video pc
        self.hostname = gethostname()
        self.are_in_inf = False
        self.are_on_vision_pc = False
        if self.hostname.endswith("inf.ed.ac.uk"):
            self.are_in_inf = True
            if self.hostname.split(".")[0] in [
                    "lappy", "mitsubishi", "lexus", "honda"
            ]:
                self.are_on_vision_pc = True

        # setup the window
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("SDP 6")
        self.window.set_default_size(850, 400)

        self.window.set_events(gtk.gdk.KEY_PRESS_MASK
                               | gtk.gdk.KEY_RELEASE_MASK)
        self.window.connect("key_press_event", self.on_key_press)
        self.window.connect("key_release_event", self.on_key_release)
        self.window.connect("destroy", self.clean_quit)

        # add widgets
        root_widget = gtk.HBox()
        self.window.add(root_widget)

        vbox_rightpanel = gtk.VBox()
        root_widget.add(vbox_rightpanel)

        vbox_leftpanel = gtk.VBox()
        vbox_leftpanel.set_size_request(150, 0)
        root_widget.add(vbox_leftpanel)

        hbox_rightpanel_top = gtk.HBox()
        vbox_rightpanel.add(hbox_rightpanel_top)

        hbox_rightpanel_bottom = gtk.HBox()
        hbox_rightpanel_bottom.set_size_request(0, 100)
        vbox_rightpanel.add(hbox_rightpanel_bottom)

        hbox_leftpanel_feed = gtk.HBox()
        hbox_leftpanel_feed.set_size_request(150, 0)
        vbox_leftpanel.add(hbox_leftpanel_feed)

        self.button = gtk.ToggleButton("Start Feed")
        self.button.connect("clicked", self.start_stop)
        hbox_leftpanel_feed.add(self.button)

        vbox_leftpanel_feed_radio = gtk.VBox()
        hbox_leftpanel_feed.add(vbox_leftpanel_feed_radio)

        radio1 = gtk.RadioButton(group=None, label="Real")
        radio1.set_active(True)
        radio1.connect("toggled", self.radio_feed_change)
        vbox_leftpanel_feed_radio.add(radio1)

        self.feed_radio = "real"

        radio2 = gtk.RadioButton(group=radio1, label="Test")
        vbox_leftpanel_feed_radio.add(radio2)

        self.button_fixcolour = gtk.ToggleButton("Fix Colour")
        hbox_leftpanel_feed.add(self.button_fixcolour)

        button = gtk.Button("Save Frame")
        button.connect("clicked", self.save_frame)
        vbox_leftpanel.add(button)

        self.button_connect = gtk.ToggleButton("Connect")
        self.button_connect.connect("clicked", self.__connect)
        vbox_leftpanel.add(self.button_connect)

        for i in range(0, 4):
            button = gtk.Button("test " + str(i))
            vbox_leftpanel.add(button)

        self.gst = GstDrawingArea()
        hbox_rightpanel_top.add(self.gst)

        #self.vte = vte.Terminal()
        #self.vte.connect ("child-exited", self.respawn_vte)
        #self.vte.fork_command()
        #hbox_rightpanel_bottom.add(self.vte)

        self.window.show_all()
        self.log.debug("GTK windows complete")