PDA

View Full Version : [Script] Exemplo de ListBox em Reapython


Diogo Azevedo
03-11-2010, 07:36 PM
Galera,

Estou criando um script para mostrar uma lista de ProjectTabs abertos. Entao, o usuário poderá selecionar o projeto na lista, dar 2 cliques para selecionar o ProjectTab, como sugerido pelo Juca.

O script completo nao está pronto. Estou quebrando a cabeça, mas ja consegui resultados. Pelo menos pelo método Brucutu (Selecionar tab numero 50 = açao Next Tab 50 vezes hahaha).

Por enquanto fiz este exemplo de como utilizar o python para gerar uma lista. Neste exemplo, gero uma lista com 3 numeros e ao clicar 2 vezes em um deles, ou selecionar a linha e clicar no botao, eu gero uma saida com o indice da linha selecionada (0, 1 ou 2).

Instale o python 3 recomendado pelo site do Reaper.

http://www.cockos.com/wiki/index.php/ReaScript

Reinicie o Pc. Abra o Reaper e clique em Help->Html List->Reascript functions.
Nas primeiras linhas vc terá informações se o python foi reconhecido ou nao.
Se tudo estiver ok, entao abra o actions, clique em new/load, atribua um nome *.py (por exemplo: ExemploListBox.py), copie o codigo para o bloco de notas que será aberto, salve e rode o script clicando em Run.

Use por sua conta e risco!

Script

#
#
# ProjTabSelectList.py
#
#
#

def console_msg(*msg):
RPR_ShowConsoleMsg(str(msg) + '\n' + '\n')

import sys
sys.argv=["Main"]

import tkinter
from tkinter import *

class Application(tkinter.Frame):
def AddEnv(self):
pass

def createWidgets(self):
self.lb = Listbox(self)
self.lb.insert(END,'1','2','3')
self.lb.bind("<Double-Button-1>", self.ok)
self.lb.pack()

self.hi_there = Button(self)
self.hi_there["text"] = "Show Line Index"
self.hi_there["command"] = self.displayMessage1
self.hi_there.pack({"side": "left"})

def __init__(self, master=None):
tkinter.Frame.__init__(self, master)
self.pack()
self.createWidgets()

def displayMessage1(self):
console_msg("Line selected"+' '+str(self.lb.curselection()[0][0]))


def ok(self, event):
console_msg("Line selected"+' '+str(self.lb.curselection()[0][0]))


root = tkinter.Tk()
app = Application(master=root)
app.mainloop()



Ja postei no forum de desenvolvedores. Qualquer sugestão será bem vinda!

Abraço.

Juca
03-11-2010, 08:25 PM
Grande Diogo:
Muito legal de sua parte dedicar-se a desenvolver uma solução para a idéia, o que me faz deduzir que gosta dela e aposta na sua funcionalidade.
É uma pena que eu não manje de programação, pois teria o maior prazer de poder participar e ajudar a desenvolver o script.
Eu já mandado um email para a SWS apresentando a idéia, creio que agora com o seu suporte as coisas possam ficar mais fáceis.
Vou acompanhar o assunto com o maior carinho e se puder ajudar em alguma coisa certamente o farei.
Grande abraço e obrigado pelo esforço.