python类idle_add()的实例源码

move_list.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def move_box_selection(self):
        if gv.jcchess.get_stopped():

            (treemodel, treeiter) = gv.gui.move_view.get_selection().get_selected()
            if treeiter is not None:
                k = gv.gui.movestore.get_value(treeiter,0).find(".")      
                nmove = int(gv.gui.movestore.get_value(treeiter,0)[0:k])
                self.comments.set_moveno(nmove)
                # now call a method in jcchess.py to position it at the move
                # clicked on
                gv.jcchess.goto_move(nmove)  

                path = str(nmove)
                self.treeview.set_cursor(path, None,False)  
                GObject.idle_add(self.treeview.scroll_to_cell,path,None, False, 0,0)  #arguments must be in list

        else:
            GObject.idle_add(gv.gui.move_view.unselect_all)
uci.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def command(self, cmd):
        e = self.side + "(" + self.get_running_engine().strip() + "):"
        if gv.verbose or gv.verbose_uci:
            print("->" + e + cmd.strip())
        GObject.idle_add(self.engine_debug.add_to_log, "->" + e + cmd.strip())
        try:
            # write as string (not bytes) since universal_newlines=True
            self.p.stdin.write(cmd)
        except AttributeError:
            GObject.idle_add(
                self.engine_debug.add_to_log,
                "# engine process is not running")
        except IOError:
            GObject.idle_add(
                self.engine_debug.add_to_log,
                "# engine process is not running")
render.py 文件源码 项目:iutils 作者: inconvergent 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, n, front, back, step):

    from gi.repository import Gtk
    from gi.repository import GObject

    Render.__init__(self, n, front, back)

    window = Gtk.Window()
    self.window = window
    window.resize(self.n, self.n)

    self.step = step

    window.connect("destroy", self.__destroy)
    darea = Gtk.DrawingArea()
    # darea.connect("expose-event", self.expose)
    self.darea = darea

    window.add(darea)
    window.show_all()

    #self.cr = self.darea.window.cairo_create()
    self.steps = 0
    GObject.idle_add(self.step_wrap)
logic.py 文件源码 项目:btcwidget 作者: rafalh 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def _on_config_change(self):
        self._last_graph_update = 0

        market_ids = set([get_market_id(mc) for mc in config['markets']])
        removed_market_ids = self._last_ticer.keys() - market_ids
        [self._last_ticer.pop(market_id, None) for market_id in removed_market_ids]

        market_ids = set([get_market_id(mc) for mc in config['markets'] if mc['graph']])
        removed_graph_market_ids = self._graph_data_dict.keys() - market_ids
        [self._graph_data_dict.pop(market_id, None) for market_id in removed_graph_market_ids]

        self._main_win.remove_graph_markets(removed_graph_market_ids)

        for market_id in self._last_ticer:
            last_price = self._last_ticer[market_id]['close']
            market_config, _ = config.get_market_by_id(market_id)
            price_str = btcwidget.currency.service.format_price(last_price, market_config['market'][3:])
            GObject.idle_add(self._main_win.set_current_price, market_id, price_str)
        for market_id in self._graph_data_dict:
            self._update_market_graph(market_id)
widgets.py 文件源码 项目:mcg 作者: coderkun 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def on_mcg_connect(self, connected):
        if connected:
            GObject.idle_add(self._connect_connected)
            self._mcg.load_playlist()
            self._mcg.load_albums()
            self._mcg.get_status()
            self._connect_action.set_state(GLib.Variant.new_boolean(True))
            self._play_action.set_enabled(True)
            self._clear_playlist_action.set_enabled(True)
            self._panel_action.set_enabled(True)
        else:
            GObject.idle_add(self._connect_disconnected)
            self._connect_action.set_state(GLib.Variant.new_boolean(False))
            self._play_action.set_enabled(False)
            self._clear_playlist_action.set_enabled(False)
            self._panel_action.set_enabled(False)
widgets.py 文件源码 项目:mcg 作者: coderkun 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def on_mcg_status(self, state, album, pos, time, volume, error):
        # Album
        GObject.idle_add(self._panels[Window._PANEL_INDEX_COVER].set_album, album)
        # State
        if state == 'play':
            GObject.idle_add(self._header_bar.set_play)
            GObject.idle_add(self._panels[Window._PANEL_INDEX_COVER].set_play, pos, time)
            self._play_action.set_state(GLib.Variant.new_boolean(True))
        elif state == 'pause' or state == 'stop':
            GObject.idle_add(self._header_bar.set_pause)
            GObject.idle_add(self._panels[Window._PANEL_INDEX_COVER].set_pause)
            self._play_action.set_state(GLib.Variant.new_boolean(False))
        # Volume
        GObject.idle_add(self._header_bar.set_volume, volume)
        # Error
        if error is None:
            self._infobar.hide()
        else:
            self._show_error(error)
widgets.py 文件源码 项目:mcg 作者: coderkun 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def _change_tracklist_size(self, size, notify=True, store=True):
        # Set tracklist size
        if size == TracklistSize.LARGE:
            self._panel.set_homogeneous(True)
            self._info_revealer.set_reveal_child(True)
        elif size == TracklistSize.SMALL:
            self._panel.set_homogeneous(False)
            self._info_revealer.set_reveal_child(True)
        else:
            self._panel.set_homogeneous(False)
            self._info_revealer.set_reveal_child(False)
        # Store size
        if store:
            self._tracklist_size = size
        # Notify signals
        if notify:
            self.emit('tracklist-size-changed', size)
        # Resize image
        GObject.idle_add(self._resize_image)
lessonfile.py 文件源码 项目:Solfege 作者: RannyeriDev 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def parse_all_files(self, when_idle):
        """
        Parse all standard lesson files and the user_lessonfiles.
        Will not check if reparse is necessary.
        """
        logging.debug("parse_all_files(when_idle=%s)", when_idle)
        if when_idle:
            self._lessonfiles_iterator = self.iter_parse_all_files()

            def on_idle_parse():
                try:
                    filename = self._lessonfiles_iterator.next()
                    return True
                except StopIteration:
                    logging.debug("parse_all_files(...) done.")
                    import time
                    print "all files parsed:", time.time() - start_time
                    pt.Identifier.check_ns = True
                    return False
            GObject.idle_add(on_idle_parse)

        else:
            list(self.iter_parse_all_files())
main_window.py 文件源码 项目:MokaPlayer 作者: vedard 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __create_model(self):
        self.logger.info('Creating ListStore')
        start = time.perf_counter()

        model = AdapterSong.create_store()
        order = AbstractPlaylist.OrderBy[self.userconfig['grid']['sort']['field']]
        desc = self.userconfig['grid']['sort']['desc']
        songs = self.current_playlist.collections(order, desc)

        for row in songs:
            model.insert_with_valuesv(-1, AdapterSong.create_col_number(), AdapterSong.create_row(row))

        GObject.idle_add(lambda: self.__create_model_finished(model))

        end = time.perf_counter()
        self.logger.info('ListStore created in {:.3f} seconds'.format(end - start))
tabs_window.py 文件源码 项目:MokaPlayer 作者: vedard 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def download(self, path):
        text = ''
        tab_type = self.model[path][0]
        name = self.model[path][1]
        url = self.model[path][3]

        if tab_type == 'tab':
            text = tabs_fetcher.fetch_ascii_tab(url)

        elif tab_type == 'guitar pro':
            path = tabs_fetcher.download_guitar_pro_tab(url, '/tmp/')

            if path is not None:
                text = f'{name} downloaded at "{path}"'
                file_helper.open_file(path)
            else:
                text = f'Error while downloading {name}'

        GObject.idle_add(lambda: self.on_download_finished(text))
ping_object.py 文件源码 项目:any_ping_indicator 作者: leggedrobotics 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def update_menu_item(self):
        """Update the menu item.
        :return:
        """
        GObject.idle_add(
            self.menu_item.set_label,
            "Ping: " + self.address + self.print_name() + self.state,
            priority=GObject.PRIORITY_HIGH
        )
        GObject.idle_add(
            self.menu_item.set_image,
            self.image,
            priority=GObject.PRIORITY_HIGH
        )
        GObject.idle_add(
            self.menu_item.show,
            priority=GObject.PRIORITY_HIGH
        )
render.py 文件源码 项目:boids 作者: inconvergent 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__(self, n, front, back, step):
    from gi.repository import Gtk
    from gi.repository import GObject

    Render.__init__(self, n, front, back)

    window = Gtk.Window()
    self.window = window
    window.resize(self.n, self.n)

    self.step = step

    window.connect("destroy", self.__destroy)
    darea = Gtk.DrawingArea()
    # darea.connect("expose-event", self.expose)
    self.darea = darea

    window.add(darea)
    window.show_all()

    #self.cr = self.darea.window.cairo_create()
    self.steps = 0
    GObject.idle_add(self.step_wrap)
render.py 文件源码 项目:talks 作者: inconvergent 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def __init__(self, n, front, back, step):

    from gi.repository import Gtk
    from gi.repository import GObject

    Render.__init__(self, n, front, back)

    window = Gtk.Window()
    self.window = window
    window.resize(self.n, self.n)

    self.step = step

    window.connect("destroy", self.__destroy)
    darea = Gtk.DrawingArea()
    # darea.connect("expose-event", self.expose)
    self.darea = darea

    window.add(darea)
    window.show_all()

    #self.cr = self.darea.window.cairo_create()
    self.steps = 0
    GObject.idle_add(self.step_wrap)
catview_gtk.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def set_subcategory(self, root_category, num_items=0, block=False):
        # nothing to do
        if (root_category is None or
            self.categories == root_category.subcategories):
            return

        self.current_category = root_category
        self.header = root_category.name
        self.categories = root_category.subcategories

        if not self._built:
            self._build_subcat_view()
        self._update_subcat_view(root_category, num_items)

        GObject.idle_add(self.queue_draw)
        return
catview_gtk.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def refresh_apps(self):
        supported_only = get_global_filter().supported_only
        if (self.current_category is None or
            self._supported_only == supported_only):
            return
        self._supported_only = supported_only

        if not self._built:
            self._build_subcat_view()
        self._update_subcat_view(self.current_category)
        GObject.idle_add(self.queue_draw)
        return

    #def build(self, desktopdir):
        #self.in_subsection = True
        #self.set_subcategory(self.root_category)
        #return
appdetailsview.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def mark_changes(self, checkbutton):
        LOG.debug("mark_changes")
        addon = checkbutton.pkgname
        installed = self.view.cache[addon].installed
        if checkbutton.get_active():
            if addon not in self.addons_to_install and not installed:
                self.addons_to_install.append(addon)
            if addon in self.addons_to_remove:
                self.addons_to_remove.remove(addon)
        else:
            if addon not in self.addons_to_remove and installed:
                self.addons_to_remove.append(addon)
            if addon in self.addons_to_install:
                self.addons_to_install.remove(addon)
        self.status_bar.configure()
        GObject.idle_add(self.view.update_totalsize,
                         priority=GObject.PRIORITY_LOW)
viewswitcher.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def on_channel_selected(self, item, event, channel, view_id):
        vm = self.view_manager

        def config_view():
            # set active pane
            pane = vm.set_active_view(view_id)
            # configure DisplayState
            state = pane.state.copy()
            state.category = None
            state.subcategory = None
            state.channel = channel
            # decide which page we want to display
            if hasattr(pane, "Pages"):
                if channel.origin == "all":
                    page = pane.Pages.HOME
                else:
                    page = pane.Pages.LIST
            else:
                page = None
            # request page change
            vm.display_page(pane, page, state)
            return False

        GObject.idle_add(config_view)
core.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self, oneconfviewpickler):
        '''Controller of the installed pane'''

        LOG.debug("OneConf Handler init")
        super(OneConfHandler, self).__init__()

        # OneConf stuff
        self.oneconf = DbusConnect()
        self.oneconf.hosts_dbus_object.connect_to_signal('hostlist_changed',
            self.refresh_hosts)
        self.oneconf.hosts_dbus_object.connect_to_signal('packagelist_changed',
            self._on_store_packagelist_changed)
        self.oneconf.hosts_dbus_object.connect_to_signal('latestsync_changed',
            self.on_new_latest_oneconf_sync_timestamp)
        self.already_registered_hostids = []
        self.is_current_registered = False

        self.oneconfviewpickler = oneconfviewpickler

        # refresh host list
        self._refreshing_hosts = False
        GObject.timeout_add_seconds(MIN_TIME_WITHOUT_ACTIVITY,
            self.get_latest_oneconf_sync)
        GObject.idle_add(self.refresh_hosts)
catview_gtk.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def refresh_apps(self):
        supported_only = get_global_filter().supported_only
        if (self.current_category is None or
            self._supported_only == supported_only):
            return
        self._supported_only = supported_only

        if not self._built:
            self._build_subcat_view()
        self._update_subcat_view(self.current_category)
        GObject.idle_add(self.queue_draw)
        return

    #def build(self, desktopdir):
        #self.in_subsection = True
        #self.set_subcategory(self.root_category)
        #return
appdetailsview.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def mark_changes(self, checkbutton):
        LOG.debug("mark_changes")
        addon = checkbutton.pkgname
        installed = self.view.cache[addon].installed
        if checkbutton.get_active():
            if addon not in self.addons_to_install and not installed:
                self.addons_to_install.append(addon)
            if addon in self.addons_to_remove:
                self.addons_to_remove.remove(addon)
        else:
            if addon not in self.addons_to_remove and installed:
                self.addons_to_remove.append(addon)
            if addon in self.addons_to_install:
                self.addons_to_install.remove(addon)
        self.status_bar.configure()
        GObject.idle_add(self.view.update_totalsize,
                         priority=GObject.PRIORITY_LOW)
core.py 文件源码 项目:x-mario-center 作者: fossasia 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self, oneconfviewpickler):
        '''Controller of the installed pane'''

        LOG.debug("OneConf Handler init")
        super(OneConfHandler, self).__init__()

        # OneConf stuff
        self.oneconf = DbusConnect()
        self.oneconf.hosts_dbus_object.connect_to_signal('hostlist_changed',
            self.refresh_hosts)
        self.oneconf.hosts_dbus_object.connect_to_signal('packagelist_changed',
            self._on_store_packagelist_changed)
        self.oneconf.hosts_dbus_object.connect_to_signal('latestsync_changed',
            self.on_new_latest_oneconf_sync_timestamp)
        self.already_registered_hostids = []
        self.is_current_registered = False

        self.oneconfviewpickler = oneconfviewpickler

        # refresh host list
        self._refreshing_hosts = False
        GObject.timeout_add_seconds(MIN_TIME_WITHOUT_ACTIVITY,
            self.get_latest_oneconf_sync)
        GObject.idle_add(self.refresh_hosts)
application_menu.py 文件源码 项目:sticky-notes 作者: rubyAce71697 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def change_the_title_of_note_in_menu(self,old_title,new_title):

        print "|||||||||||||||"*20
        print "tile cchanged" + new_title

        for i in self.menu.get_children():
            logger.debug("in loop")

            logger.debug(i.get_label())

            if (i.get_submenu()):
                logger.debug("Submenu is here")

                for j in i.get_submenu().get_children():

                    logger.debug("---->" +  j.get_label())



        for i in self.menu.get_children()[7].get_submenu().get_children():

            if old_title == i.get_label():
                GObject.idle_add(i.set_label,new_title)
application_menu.py 文件源码 项目:sticky-notes 作者: rubyAce71697 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def change_item_icon(self,title,icon):


        for i in self.menu.get_children():
            logger.debug("in loop")

            logger.debug(i.get_label())

            if (i.get_submenu()):
                logger.debug("Submenu is here")

                for j in i.get_submenu().get_children():

                    logger.debug("---->" +  j.get_label())



        for i in self.menu.get_children()[7].get_submenu().get_children():

            if title == i.get_label():
                GObject.idle_add(i.set_image,Gtk.Image.new_from_icon_name(icon, Gtk.IconSize.LARGE_TOOLBAR))

                logger.debug("Icon changed to: ", str(icon))
canvas.py 文件源码 项目:PyCut 作者: FOSSRIT 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def run_pygame(self, main_fn):
        # Run the main loop after a short delay.  The reason for the delay is that the
        # Sugar activity is not properly created until after its constructor returns.
        # If the Pygame main loop is called from the activity constructor, the 
        # constructor never returns and the activity freezes.
        GObject.idle_add(self._run_pygame_cb, main_fn)
qr-lipsync-generate.py 文件源码 项目:qr-lipsync 作者: UbiCastTeam 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def evt_eos(self, event):
        self.end_time = time.time()
        self.unregister_event("eos")
        self.pipeline.stop()
        render_duration = self.end_time - self.start_time
        fps = self.settings['framerate']*self.settings['duration']/render_duration
        logger.info("Rendering of %s took %.2fs (%i fps)" % (self.output_file, render_duration, fps))
        GObject.idle_add(self.mainloop.quit)
move_list.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def set_move(self, move_idx):
        path = (move_idx,)
        #self.tree_selection.select_path(path)  to be bypasses if cursor_changed as event in moves_clicked
        self.comments.set_moveno(move_idx)
        if gv.show_moves == True:
            if move_idx > 0:
                path = str(move_idx-1)
            #gv.gui.move_view.set_cursor(path, None,False) 
            if path[0]!=0 and path!='0':
                GObject.idle_add(gv.gui.move_view.scroll_to_cell,path,None, False, 0,0)  #arguments must be in list

        return
move_list.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def treeview_button_press(self, treeview, event):
        if gv.jcchess.get_stopped():
            GObject.idle_add(self.process_tree_selection)
        else:
            GObject.idle_add(self.tree_selection.unselect_all)

    # set the board position at the move the user clicked on
engine_debug.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def engine1_button_clicked(self, b):

        player = gv.jcchess.get_player(WHITE)
        if player == "Human" or player == "jcchess":
            GObject.idle_add(
                self.add_to_log,
                "# command not sent - player 1 (white) is not a USI engine")
            return

        cmd = self.cmd_entry.get_text() + "\n"
        gv.usiw.command(cmd)

    # send command to engine2 (black)
engine_debug.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def add_to_log(self, msg):
        msg = msg + "\n"
        try:
            # append to end of buffer
            end_iter = self.tb.get_end_iter()
            self.tb.insert(end_iter, msg)
            # scroll to end
            GObject.idle_add(self.scroll_to_end)
        except AttributeError:
            # engine debug window has not been opened. Append the debug
            # messages until it is opened
            self.debug_text += msg
engine_debug.py 文件源码 项目:jcchess 作者: johncheetham 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def show_debug_window(self, b):

        # window already exists and is hidden so just show it
        if self.window is not None:
            # "present" will show the window if it is hidden
            # if not hidden it will raise it to the top
            self.window.present()
            return

        # This is the first time the user has opened the engine debug
        # window so need to create it.
        self.builder = Gtk.Builder()
        self.builder.set_translation_domain(gv.domain)
        self.builder.add_from_file(self.glade_file)
        self.builder.connect_signals(self)

        self.window = self.builder.get_object("engine_debug_window")
        self.tv = self.builder.get_object("engine_debug_textview")
        self.tv.set_editable(False)
        self.tb = self.tv.get_buffer()
        self.tb.set_text(self.debug_text)
        self.debug_text = ""

        # used to type commands and send them to the engine
        self.cmd_entry = self.builder.get_object("engine_debug_entry")

        self.window.show_all()

        # scroll to end
        GObject.idle_add(self.scroll_to_end)


问题


面经


文章

微信
公众号

扫码关注公众号