def __init__(self, wparent, is_game, game): self.game = game self.position = game.first_position self.configuration = configuration = Code.configuration self.is_game = is_game self.wparent = wparent QtWidgets.QWidget.__init__(self, wparent) li_acciones = ( (_("Save"), Iconos.GrabarComo(), self.save), None, (_("Cancel"), Iconos.Cancelar(), self.cancelar), None, (_("Start position"), Iconos.Inicio(), self.inicial), None, (_("Clear board"), Iconos.Borrar(), self.limpiaBoard), (_("Paste FEN position"), Iconos.Pegar16(), self.pegar), (_("Copy FEN position"), Iconos.Copiar(), self.copiar), (_("Scanner"), Iconos.Scanner(), self.scanner), ) self.tb = Controles.TBrutina(self, li_acciones, with_text=False, icon_size=20) config_board = configuration.config_board("VOYAGERPOS", 24) self.board = Board.PosBoard(self, config_board) self.board.crea() self.board.set_dispatcher(self.mueve) self.board.mensBorrar = self.borraCasilla self.board.mensCrear = self.creaCasilla self.board.mensRepetir = self.repitePieza self.board.ponDispatchDrop(self.dispatchDrop) self.board.baseCasillasSC.setAcceptDrops(True) dragDropWB = QTVarios.ListaPiezas(self, "P,N,B,R,Q,K", self.board, margen=0) dragDropBA = QTVarios.ListaPiezas(self, "k,q,r,b,n,p", self.board, margen=0) self.rbWhite = Controles.RB(self, _("White"), rutina=self.cambiaColor) self.rbBlack = Controles.RB(self, _("Black"), rutina=self.cambiaColor) self.cbWoo = Controles.CHB(self, _("White") + " O-O", True) self.cbWooo = Controles.CHB(self, _("White") + " O-O-O", True) self.cbBoo = Controles.CHB(self, _("Black") + " O-O", True) self.cbBooo = Controles.CHB(self, _("Black") + " O-O-O", True) lbEnPassant = Controles.LB(self, _("En passant") + ":") self.edEnPassant = Controles.ED(self).controlrx( "(-|[a-h][36])").anchoFijo(30) self.edMovesPawn, lbMovesPawn = QTUtil2.spinBoxLB( self, 0, 0, 999, etiqueta=_("Halfmove clock"), maxTam=50) self.edFullMoves, lbFullMoves = QTUtil2.spinBoxLB( self, 1, 1, 999, etiqueta=_("Fullmove number"), maxTam=50) self.vars_scanner = Scanner.Scanner_vars( self.configuration.carpetaScanners) self.lb_scanner = Controles.LB(self) pb_scanner_deduce = Controles.PB(self, _("Deduce"), self.scanner_deduce, plano=False) self.chb_scanner_flip = Controles.CHB(self, _("Flip the board"), False).capture_changes( self, self.scanner_flip) self.pb_scanner_learn = Controles.PB(self, _("Learn"), self.scanner_learn, plano=False) self.pb_scanner_learn_quit = Controles.PB( self, "", self.scanner_learn_quit).ponIcono(Iconos.Menos(), icon_size=24) self.pb_scanner_learn_quit.ponToolTip( _("Remove last learned")).anchoFijo(24) self.sb_scanner_tolerance, lb_scanner_tolerance = QTUtil2.spinBoxLB( self, self.vars_scanner.tolerance, 3, 20, etiqueta=_("Deduction tolerance"), maxTam=50) self.sb_scanner_tolerance_learns, lb_scanner_tolerance_learns = QTUtil2.spinBoxLB( self, self.vars_scanner.tolerance_learns, 1, 6, etiqueta=_("Learning tolerance"), maxTam=50) self.chb_rem_ghost_deductions = Controles.CHB( self, _("Remove ghost deductions"), self.vars_scanner.rem_ghost) self.cb_scanner_select, lb_scanner_select = QTUtil2.comboBoxLB( self, [], None, _("OPR")) self.cb_scanner_select.capture_changes(self.scanner_change) pb_scanner_more = Controles.PB(self, "", self.scanner_more).ponIcono( Iconos.Mas()) self.chb_scanner_ask = Controles.CHB(self, _("Ask before new capture"), self.vars_scanner.ask) self.li_scan_pch = [] self.is_scan_init = False # LAYOUT ------------------------------------------------------------------------------------------- hbox = Colocacion.H().control(self.rbWhite).espacio(15).control( self.rbBlack) gbColor = Controles.GB(self, _("Side to play"), hbox) ly = Colocacion.G().control(self.cbWoo, 0, 0).control(self.cbBoo, 0, 1) ly.control(self.cbWooo, 1, 0).control(self.cbBooo, 1, 1) gbEnroques = Controles.GB(self, _("Castling moves possible"), ly) ly = Colocacion.G() ly.controld(lbMovesPawn, 0, 0, 1, 3).control(self.edMovesPawn, 0, 3) ly.controld(lbEnPassant, 1, 0).control(self.edEnPassant, 1, 1) ly.controld(lbFullMoves, 1, 2).control(self.edFullMoves, 1, 3) gbOtros = Controles.GB(self, "", ly) lyT = (Colocacion.H().relleno().control(lb_scanner_tolerance).espacio( 5).control(self.sb_scanner_tolerance).relleno()) lyTL = (Colocacion.H().relleno().control( lb_scanner_tolerance_learns).espacio(5).control( self.sb_scanner_tolerance_learns).relleno()) lyL = Colocacion.H().control(self.pb_scanner_learn).control( self.pb_scanner_learn_quit) lyS = Colocacion.H().control(lb_scanner_select).control( self.cb_scanner_select).control(pb_scanner_more) ly = Colocacion.V().control(self.chb_scanner_flip).control( pb_scanner_deduce).otro(lyL).otro(lyT).otro(lyTL) ly.control(self.chb_rem_ghost_deductions).otro(lyS) ly.control(self.chb_scanner_ask) self.gb_scanner = Controles.GB(self, _("Scanner"), ly) lyG = Colocacion.G() lyG.controlc(dragDropBA, 0, 0) lyG.control(self.board, 1, 0).control(self.lb_scanner, 1, 1) lyG.controlc(dragDropWB, 2, 0).controlc(self.gb_scanner, 2, 1, numFilas=4) lyG.controlc(gbColor, 3, 0) lyG.controlc(gbEnroques, 4, 0) lyG.controlc(gbOtros, 5, 0) layout = Colocacion.V() layout.controlc(self.tb) layout.otro(lyG) layout.margen(1) self.setLayout(layout) self.ultimaPieza = "P" self.piezas = self.board.piezas self.resetPosicion() self.ponCursor() self.lb_scanner.hide() self.pb_scanner_learn_quit.hide() self.gb_scanner.hide()
def __init__(self, tableroOwner): self.leeRecursos() self.tableroOwner = tableroOwner titulo = _("Director") icono = Iconos.Director() extparam = "tabdirector" QTVarios.WDialogo.__init__(self, tableroOwner, titulo, icono, extparam) liAcciones = [ (_("Quit"), Iconos.MainMenu(), self.terminar), None, (_("Arrows"), Iconos.Flechas(), self.flechas), None, (_("Boxes"), Iconos.Marcos(), self.marcos), None, (_("Images"), Iconos.SVGs(), self.svgs), None, (_("Markers"), Iconos.Markers(), self.markers), None, None, (_("Clipboard"), Iconos.Clip(), self.portapapeles), None, (_("Save") + " png", Iconos.GrabarFichero(), self.grabarFichero), None, ] tb = Controles.TBrutina(self, liAcciones, siTexto=False, tamIcon=32) pbLimpia = Controles.PB(self, _("Clean main board"), self.limpiaTableroOwner, plano=False) self.siTabCoord = self.dbConfig["COORDINADOS"] if self.siTabCoord is None: self.siTabCoord = self.dbConfig["COORDINADOS"] = True self.chTabCoord = Controles.CHB(self, _("Boards coordinated"), self.siTabCoord) self.chTabCoord.capturaCambiado(self, self.cambiadoTabCoord) pbCoordina = Controles.PB(self, "", self.coordinaTableros).ponIcono( Iconos.Coordina()).anchoFijo(30) # Tablero confTablero = VarGen.configuracion.confTablero( "Director", 24, padre=tableroOwner.confTablero.id()) self.tablero = Tablero.TableroDirector(self, confTablero) self.tablero.crea() self.tablero.ponDispatchEventos(self.dispatch) self.tablero.dispatchSize(self.tableroCambiadoTam) self.tablero.baseCasillasSC.setAcceptDrops(True) self.tablero.ponMensajero(self.muevePieza) self.tablero.activaTodas() self.guion = TabVisual.Guion() self.nomGuion = "" # Tools listaPiezas = QTVarios.ListaPiezas(self, "P,N,B,R,Q,K,p,n,b,r,q,k", self.tablero, 18, margen=0) # Guion liAcciones = [ (_("New"), Iconos.Nuevo(), self.gnuevo), (_("Insert"), Iconos.Insertar(), self.ginsertar), (_("Copy"), Iconos.Copiar(), self.gcopiar), None, (_("Remove"), Iconos.Borrar(), self.gborrar), None, (_("Up"), Iconos.Arriba(), self.garriba), (_("Down"), Iconos.Abajo(), self.gabajo), None, (_("Mark"), Iconos.Marcar(), self.gmarcar), None, (_("Save"), Iconos.Grabar(), self.ggrabarGuion), (_("Open"), Iconos.Recuperar(), self.grecuperarGuion), None, (_("Remove script"), Iconos.Delete(), self.geliminarGuion) ] tbGuion = Controles.TBrutina(self, liAcciones, siTexto=False, tamIcon=20) oColumnas = Columnas.ListaColumnas() oColumnas.nueva("DIRECTOR", "0", 20, siCentrado=True, siChecked=True) oColumnas.nueva("MARCADO", "1", 20, siCentrado=True, siChecked=True) oColumnas.nueva("TIPO", _("Type"), 50, siCentrado=True) oColumnas.nueva("NOMBRE", _("Name"), 100, siCentrado=True, edicion=Delegados.LineaTextoUTF8()) oColumnas.nueva("INFO", _("Information"), 100, siCentrado=True) self.g_guion = Grid.Grid(self, oColumnas, siCabeceraMovible=False, siEditable=True, siSeleccionMultiple=True) self.g_guion.gotop() self.g_guion.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self.registrarGrid(self.g_guion) # Visuales self.dragBanda = QTVarios.DragBanda(self, (5, 5), 32, margen=0) # Botones lyLC = Colocacion.H().control(pbLimpia).control(pbCoordina).control( self.chTabCoord) lyTB = Colocacion.V() lyTB.controlc(self.dragBanda) lyTB.control(self.tablero) lyTB.control(listaPiezas) lyTB.otro(lyLC) lyTB.control(tbGuion) lyTB.control(self.g_guion) lyTB.margen(0) # Layout layout = Colocacion.V().control(tb).otro(lyTB).margen(3) self.setLayout(layout) self.recuperarVideo() self.actualizaBandas() li = self.dbConfig["DRAGBANDA"] if li: self.dragBanda.recuperar(li) self.ultDesde = "d4" self.ultHasta = "e5" self.compruebaTabCoord() self.tablero.setFocus() self.importaOtroTablero()
def __init__(self, tableroOwner): self.tableroOwner = tableroOwner titulo = _("Board -> Image") icono = Iconos.Camara() extparam = "tabvisual" QTVarios.WDialogo.__init__(self, tableroOwner, titulo, icono, extparam) liAcciones = [( _("Quit"), Iconos.MainMenu(), "terminar" ), None, ( _("Clipboard"), Iconos.Clip(), "portapapeles" ), None, ( _("Save") + " png", Iconos.GrabarFichero(), "grabarFichero" ), None, ( _("Arrows"), Iconos.Flechas(), "flechas" ), None, ( _("Boxes"), Iconos.Marcos(), "marcos" ), None, ( _("Images"), Iconos.SVGs(), "svgs" ), None, # ( _( "Sounds" ), Iconos.S_LeerWav(), "sonidos" ), None, ] tb = Controles.TB(self, liAcciones) # Tablero idTab = "TABVISUAL" confTablero = VarGen.configuracion.confTablero(idTab, 24, padre=tableroOwner.confTablero.id()) self.tablero = Tablero.TableroVisual(self, confTablero) self.tablero.crea() self.tablero.ponDispatchEventos(self.dispatch) self.tablero.dispatchSize(self.tableroCambiadoTam) self.tablero.baseCasillasSC.setAcceptDrops(True) self.tablero.ponMensajero(self.muevePieza) self.tablero.copiaPosicionDe(tableroOwner) self.fenInicial = self.tablero.fenActual() self.tablero.activaTodas() self.leeRecursos() self.leeGuion("", False) # Tools self.listaPiezasW = QTVarios.ListaPiezas(self, "P;N;B;R;Q;K", self.tablero, 32) self.listaPiezasB = QTVarios.ListaPiezas(self, "p;n;b;r;q;k", self.tablero, 32) # Guion liAcciones = [( _("New"), Iconos.Nuevo(), "gnuevo" ), ( _("Insert"), Iconos.Insertar(), "ginsertar" ), ( _("Copy"), Iconos.Copiar(), "gcopiar" ), None, ( _("Remove"), Iconos.Borrar(), "gborrar" ), None, ( _("Up"), Iconos.Arriba(), "garriba" ), ( _("Down"), Iconos.Abajo(), "gabajo" ), None, ( _("Mark"), Iconos.Marcar(), "gmarcar" ), None, ( _("Save"), Iconos.Grabar(), "ggrabarGuion" ), ( _("Open"), Iconos.Recuperar(), "grecuperarGuion" ), None, ( _("Remove script"), Iconos.Delete(), "geliminarGuion" ) ] tbGuion = Controles.TB(self, liAcciones, siTexto=False, tamIcon=20) oColumnas = Columnas.ListaColumnas() oColumnas.nueva("MARCADO", "", 20, siCentrado=True, siChecked=True) oColumnas.nueva("TIPO", _("Type"), 50, siCentrado=True) oColumnas.nueva("NOMBRE", _("Name"), 100, siCentrado=True, edicion=Delegados.LineaTextoUTF8()) oColumnas.nueva("INFO", _("Information"), 100, siCentrado=True) self.g_guion = Grid.Grid(self, oColumnas, siCabeceraMovible=False, siEditable=True, siSeleccionMultiple=True) self.g_guion.gotop() self.registrarGrid(self.g_guion) # Visuales self.dragBandaArriba = QTVarios.DragBanda(self, (10,), 40) # Guion lyGuion = Colocacion.V().control(tbGuion).control(self.g_guion) # Zona tablero lyT = Colocacion.H() lyT.controli(self.listaPiezasW).controli(self.tablero).controli(self.listaPiezasB).otro(lyGuion) lyTB = Colocacion.V() lyTB.controli(self.dragBandaArriba) lyTB.otro(lyT) # Layout layout = Colocacion.V().control(tb).otro(lyTB).margen(3) self.setLayout(layout) self.recuperarVideo() self.actualizaBandas() li = self.dbConfig["DRAGBANDAARRIBA"] if li: self.dragBandaArriba.recuperar(li) self.ultDesde = "d4" self.ultHasta = "e5" self.g_guion.gotop() self.g_guion.setFocus()
def __init__(self, procesador, txtcategoria, nivel, segundos, listaFen, record): titulo = _("Check your memory on a chessboard") icono = Iconos.Memoria() extparam = "memoria" QTVarios.WDialogo.__init__(self, procesador.pantalla, titulo, icono, extparam) f = Controles.TipoLetra(puntos=10, peso=75) self.configuracion = procesador.configuracion self.nivel = nivel self.segundos = segundos self.record = record # Tablero confTablero = self.configuracion.confTablero("MEMORIA", 48) self.listaFen = listaFen self.posicion = ControlPosicion.ControlPosicion() self.tablero = Tablero.PosTablero(self, confTablero) self.tablero.crea() self.tablero.ponDispatchDrop(self.dispatchDrop) self.tablero.baseCasillasSC.setAcceptDrops(True) self.ultimaPieza = "P" tamPiezas = max(16, int(32 * self.tablero.confTablero.anchoPieza() / 48)) self.listaPiezasW = QTVarios.ListaPiezas(self, "P,N,B,R,Q,K", self.tablero, tamPiezas, margen=0) self.listaPiezasB = QTVarios.ListaPiezas(self, "p,n,b,r,q,k", self.tablero, tamPiezas, margen=0) # Ayuda lbAyuda = Controles.LB(self, _( "<ul><li><b>Add piece</b> : Right mouse button on empty square</li><li><b>Copy piece</b> : Left mouse button on empty square</li><li><b>Move piece</b> : Drag and drop piece with left mouse button</li><li><b>Delete piece</b> : Right mouse button on occupied square</li></ul>")) ly = Colocacion.H().control(lbAyuda) self.gbAyuda = Controles.GB(self, _("Help"), ly) # Rotulos informacion lbCategoria = Controles.LB(self, txtcategoria).ponFuente(f) lbNivel = Controles.LB(self, _X(_("Level %1/%2"), str(nivel + 1), "25")).ponFuente(f) if record: lbRecord = Controles.LB(self, _X(_("Record %1 seconds"), str(record))).ponFuente(f) # Rotulo de tiempo self.rotuloDispone = Controles.LB(self, _X(_("You have %1 seconds to remember the position of %2 pieces"), str(self.segundos), str(self.nivel + 3))).ponWrap().ponFuente(f).alinCentrado() self.rotuloDispone1 = Controles.LB(self, _("when you know you can press the Continue button")).ponWrap().ponFuente( f).alinCentrado() ly = Colocacion.V().control(self.rotuloDispone).control(self.rotuloDispone1) self.gbTiempo = Controles.GB(self, "", ly) self.rotuloDispone1.hide() # Tool bar liAcciones = ( (_("Start"), Iconos.Empezar(), "empezar"), (_("Continue"), Iconos.Pelicula_Seguir(), "seguir"), (_("Check"), Iconos.Check(), "comprobar"), (_("Target"), Iconos.Verde32(), "objetivo"), (_("Wrong"), Iconos.Rojo32(), "nuestro"), (_("Repeat"), Iconos.Pelicula_Repetir(), "repetir"), (_("Resign"), Iconos.Abandonar(), "abandonar"), ) self.tb = tb = Controles.TB(self, liAcciones) self.ponToolBar(["empezar"]) # Colocamos lyP = Colocacion.H().relleno().control(self.listaPiezasW).control(self.listaPiezasB).relleno().margen(0) lyT = Colocacion.V().control(self.tablero).otro(lyP).margen(0) lyI = Colocacion.V() lyI.control(tb) lyI.relleno() lyI.controlc(lbCategoria) lyI.controlc(lbNivel) if record: lyI.controlc(lbRecord) lyI.controlc(self.gbTiempo) lyI.relleno() lyI.control(self.gbAyuda) lyI.margen(3) ly = Colocacion.H().otro(lyT).otro(lyI).relleno() ly.margen(3) self.setLayout(ly) self.timer = None self.encenderExtras(False)
def __init__(self, wParent, configuracion, fen): QtGui.QDialog.__init__(self, wParent) self.wParent = wParent self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint) self.configuracion = configuracion self.setWindowTitle(_("Position")) self.setWindowIcon(Iconos.Datos()) # Quien mueve self.rbBlancas = Controles.RB(self, _("White")) self.rbNegras = Controles.RB(self, _("Black")) # Enroques permitidos self.cbBoo = Controles.CHB(self, _("White") + " O-O", True) self.cbBooo = Controles.CHB(self, _("White") + " O-O-O", True) self.cbNoo = Controles.CHB(self, _("Black") + " O-O", True) self.cbNooo = Controles.CHB(self, _("Black") + " O-O-O", True) # Peon al paso lbAlPaso = Controles.LB(self, _("En passant") + ":") self.edAlPaso = Controles.ED(self).controlrx( "(-|[a-h][36])").anchoFijo(30) # Medias jugadas desde ultimo mov. peon self.edMedias, lbMedias = QTUtil2.spinBoxLB( self, 0, 0, 999, etiqueta=_("Moves since the last pawn advance or capture"), maxTam=50) # Jugadas self.edJugadas, lbJugadas = QTUtil2.spinBoxLB(self, 1, 1, 999, etiqueta=_("Moves"), maxTam=50) # Botones adicionales btPosInicial = Controles.PB(self, _("Start position"), self.posInicial, plano=False) btLimpiaTablero = Controles.PB(self, _("Clear board"), self.limpiaTablero, plano=False) btPegar = Controles.PB(self, _("Paste FEN position"), self.pegarPosicion, plano=False) btCopiar = Controles.PB(self, _("Copy FEN position"), self.copiarPosicion, plano=False) btVoyager = Controles.PB(self, "", self.lanzaVoyager, plano=False).ponIcono(Iconos.Voyager()) self.btVoice = Controles.PB(self, "", self.voiceActive, plano=False).ponIcono(Iconos.S_Microfono()) self.btVoiceX = Controles.PB(self, "", self.voiceDeactive, plano=False).ponIcono( Iconos.X_Microfono()) # Tablero confTablero = configuracion.confTablero("POSICION", 24) self.posicion = ControlPosicion.ControlPosicion() if fen: self.posicion.leeFen(fen) else: self.posicion.posInicial() self.tablero = Tablero.PosTablero(self, confTablero) self.tablero.crea() self.tablero.ponMensajero(self.mueve) self.tablero.mensBorrar = self.borraCasilla self.tablero.mensCrear = self.creaCasilla self.tablero.mensRepetir = self.repitePieza self.ultimaPieza = "P" self.piezas = self.tablero.piezas self.resetPosicion() # Piezas drag-drop self.dragDropWI = QTVarios.ListaPiezas(self, "P;N;B;R;Q;K", self.tablero) self.dragDropWB = QTVarios.ListaPiezas(self, "P,N,B,R,Q,K", self.tablero) self.dragDropBD = QTVarios.ListaPiezas(self, "k;q;r;b;n;p", self.tablero) self.dragDropBA = QTVarios.ListaPiezas(self, "k,q,r,b,n,p", self.tablero) self.tablero.ponDispatchDrop(self.dispatchDrop) self.tablero.baseCasillasSC.setAcceptDrops(True) # Ayuda lbAyuda = Controles.LB( self, _("<ul><li><b>Add piece</b> : Right mouse button on empty square</li><li><b>Copy piece</b> : Left mouse button on empty square</li><li><b>Move piece</b> : Drag and drop piece with left mouse button</li><li><b>Delete piece</b> : Right mouse button on occupied square</li></ul>" )) # Tool bar tb = QTUtil2.tbAcceptCancel(self, siReject=False) # Layout # # Quien mueve hbox = Colocacion.H().relleno().control( self.rbBlancas).espacio(30).control(self.rbNegras).relleno() gbColor = Controles.GB(self, _("Next move"), hbox) # # Enroques ly = Colocacion.G().control(self.cbBoo, 0, 0).control(self.cbNoo, 0, 1) ly.control(self.cbBooo, 1, 0).control(self.cbNooo, 1, 1) gbEnroques = Controles.GB(self, _("Castling moves possible"), ly) ## Otros ly = Colocacion.G() ly.controld(lbMedias, 0, 0, 1, 3).control(self.edMedias, 0, 3) ly.controld(lbAlPaso, 1, 0).control(self.edAlPaso, 1, 1) ly.controld(lbJugadas, 1, 2).control(self.edJugadas, 1, 3) gbOtros = Controles.GB(self, "", ly) ## Botones adicionales lyBA = Colocacion.H().control(btPosInicial).control( btLimpiaTablero).control(btPegar).control(btCopiar).control( btVoyager) ## Ayuda ly = Colocacion.H().control(lbAyuda) gbAyuda = Controles.GB(self, _("Help"), ly) ## Izquierda ly = Colocacion.V().control(gbColor).relleno().control( gbEnroques).relleno() ly.control(gbOtros).relleno().control(gbAyuda).margen(5) lyI = Colocacion.V().control(tb).otro(ly).margen(3) ## Derecha lyBT = Colocacion.H().control(self.btVoice).control(self.btVoiceX) lyDA = Colocacion.G() lyDA.controlc(self.dragDropBA, 0, 1).otro(lyBT, 0, 2) lyDA.controld(self.dragDropWI, 1, 0).control(self.tablero, 1, 1).control(self.dragDropBD, 1, 2) lyDA.controlc(self.dragDropWB, 2, 1) lyD = Colocacion.V().otro(lyDA).otro(lyBA).relleno() ## Completo ly = Colocacion.H().otro(lyI).otro(lyD).margen(3) self.setLayout(ly) if configuracion.siDGT: if not DGT.activarSegunON_OFF(self.dgt): # Error QTUtil2.mensError( self, _("Error, could not detect the DGT board driver.")) self.ponCursor() self.voyager = None self.bufferVoice = "" self.queueVoice = [] self.isVoiceActive = False if not configuracion.voice: self.btVoiceX.setVisible(False) self.btVoice.setVisible(False) else: if Voice.runVoice.isActive(): self.voiceActive() else: self.voiceDeactive()