来自回调 tkinter 的多处理
问题内容
问题是当我想从回调 tkinter(特别是函数 tkinter 的绑定)触发进程“多重处理”时。错误从这里开始:
main.py
from reproductor import mediaplayer
def item_selected(event):
    """
    evento invocado cuando el contenido de una carpeta es abierto.
    """
    item_seleccionado = arbol.selection()
    item = arbol.item(item_seleccionado)
    print(item)
    
    #extraer la ruta del archivo y si encuentra espacios unirlos
    ruta = ""
    for element in item["values"]:
        ruta += element + " "
    
    #iniciacion del video
    global reproductor_video
    # cerrar el video para que no se abra en multiples ventanas
    if reproductor_video is not none:
        reproductor_video.closeplayer()
    
    reproductor_video = mediaplayer(ruta, frame_visualizer, frame_botones_procesar, spininicio=inbox_inicio, spinfinal=inbox_fin, spinactual=inbox_actual, mainvideo=true)
    reproductor_video.update_progres_video()
arbol = checkboxtreeview(frame_tree_in)
arbol.bind("<<treeviewselect>>", item_selected)
reproductor.py
class MediaPlayer:
    def __init__(ruta, frame_visualizer, frame_botones_procesar, spinInicio=inBox_inicio, spinFinal=inBox_fin, spinActual=inBox_Actual, mainVideo=True):
        p = Process(target=self.funcion1)
        p.start()
        #p.join
    def funcion1(self):
        cont = 0
        while cont < 100:
            cont += 1
            print("contador =", cont)
我在主函数中尝试了相同的代码,并且它执行得很好,但是从回调中它不会执行。
正确答案 原版解决方案在这里为那些需要它的人提供,实际上,如果它可以从 tkinter 上的事件启动,如下所示:
翻译(谷歌翻译):解决方案在这里为那些需要它的人提供,事实上它可以从 tkinter 中的事件启动,如下所示:
from multiprocessing import Process, log_to_stderr, get_logger
import time
from tkinter import Tk
from tkinter import ttk
import logging
import sys
def item_selected(event):
    
    my_objeto = objeto()
    button_eraser.config(command=lambda:my_objeto.lanzador(2))
    button_marco.config(command=lambda:my_objeto.lanzador(1))
    my_objeto.start_player()
class objeto:
    def __init__(self) -> None:
        #self.start_player()
        pass
    
    def start_player(self):
        pass
        
    def funcion1(self):
        contador = 0
        while 1:
            contador += 1
            print("Func1: ", contador, self.palabra)
            time.sleep(0.1)
            
            if contador > 80:
                break
        
        q = Process(target=self.funcion3)
        q.start()
        #q.join()
    
    def funcion2(self):
        contador = 0
        while 1:
            contador += 2
            print("Func2: ", contador)
            time.sleep(0.2)
            if contador > 120:
                break
    
    def funcion3(self):
        contador = 0
        while 1:
            contador += 2
            print("Func3: ", contador)
            time.sleep(0.02)
            if contador > 200:
                break
    
    def lanzador(self,mode):
        log_to_stderr(logging.DEBUG)
        logger = get_logger()
        logger.setLevel(logging.INFO)
        if mode == 1:
            self.p = Process(target=self.funcion1)
            self.p.start()
        elif mode == 2:
            self.p = Process(target=self.funcion2)
            self.p.start()
        
    def unir(self):
        self.p.join()
        print("Salio")
    def iniciar_multis(self):
        self.lanzador(2)
        self.lanzador(1)
	声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至201542412@QQ.com举报,一经查实,本站将立刻删除。
  相关推荐
- 
   
   
PyCharm打不开怎么办?快速解决方案大揭秘
PyCharm是一款功能强大的Python集成开发环境,但有时候会出现打不开的情况,可能是由于各种原因引起的。如果你遇到了PyCharm打不开的问题,不要慌张,本文将为你揭秘快速解决方案,并提供具体的
 - 
   
   
常见问题与解决方案:掌握Go语言开发网站的关键信息
掌握Go语言开发网站的常见问题与解决方案导语:随着互联网的快速发展,网站已经成为企业展示产品与服务的重要平台。而Go语言由于其高效性、并发性和简洁性,成为了很多开发人员的首选语言。然而,在Go语言开发
 - 
   
   
高效的PDF转Word文档解决方案在Go语言中
标题:Go语言中PDF转word文档的高效解决方案正文:在日常办公中,我们经常需要将PDF文档转换成Word文档,以便进行编辑或进一步处理。在Go语言中,我们可以使用第三方库或直接使用系统命令来实现P
 - 
   
   
使用Go语言进行PDF到Word文档转换的高效解决方案
使用Go语言将PDF转换为Word文档的完善方案前言PDF和Word都是常用的文档格式,在不同的场景下,我们需要在它们之间进行转换。Go语言提供了丰富的库和工具,可以帮助我们轻松实现PDF到Word的
 - 
   
   
Python中lambda函数技巧的快速学习
快速学习Python中lambda函数的应用技巧,需要具体代码示例在Python编程语言中,lambda函数是一种基于表达式的匿名函数,可以简化编码过程,提高代码的可读性和可维护性。本文将介绍lamb
 















