Old 03-11-2010, 07:36 PM   #1
Diogo Azevedo
Human being with feelings
 
Join Date: Mar 2010
Location: Brazil
Posts: 42
Default [Script] Exemplo de ListBox em Reapython

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
PHP Code:
#
#
# 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__(selfmaster=None):
        
tkinter.Frame.__init__(selfmaster)
        
self.pack()
        
self.createWidgets()
 
    
def displayMessage1(self):
        
console_msg("Line selected"+' '+str(self.lb.curselection()[0][0]))
 

    
def ok(selfevent):
        
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.
Diogo Azevedo is offline   Reply With Quote
Old 03-11-2010, 08:25 PM   #2
Juca
Human being with feelings
 
Juca's Avatar
 
Join Date: Jan 2009
Location: Itajaí - Santa Catarina - Brasil
Posts: 452
Default

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.
Juca is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 07:32 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.