어쩌면 이것은 분명하고 누락되었거나 누군가가 이미 훌륭한 가이드를 작성했으며 내 (완전한) 인터넷 검색으로 설정하지 못했지만 내 인생에서 파이썬 콘솔을 얻는 방법을 알 수는 없습니다. 리듬 박스 는 무엇이든 할 수 있습니다!
플러그인 메뉴에서 활성화 한 다음 도구-> Python 콘솔을 사용하여 엽니 다.
인쇄
You can access the main window through the 'shell' variable :
<rb.Shell object at 0xa6cdd24 (RBShell at 0xa14e000)>
>>>
그러나 프롬프트에서 입력하는 것은 아무 것도 수행하지 않습니다 ! 나는 시도했다 help
, 나는 시도했다 exit()
, 나는 시도했다 print "hello world"
, 아무것도 아무것도하지 않는다!
물론 이러한 모든 것은 일반적인 파이썬 콘솔에서 작동합니다. 나는 악마의 차이점이 무엇인지 전혀 모른다. Enter 키를 누르는 것 이외의 다른 작업을 수행해야합니까?
답변
리듬 플러그인 작성 가이드는 당신이 리듬을 제어 재생에 파이썬 콘솔에서 사용하고 수정할 수있는 명령의 몇 가지 예제가 있습니다 :
-
재생 / 일시 중지
shell.props.shell_player.playpause()
-
중지
shell.props.shell_player.stop()
-
다음 트랙
shell.props.shell_player.do_next()
-
재생 대기열에 노래 추가
shell.add_to_queue("file://awsome_song.ogg")
-
시각화 표시
import gst goom = gst.element_factory_make ("goom") sink = gst.element_factory_make ("ximagesink") colour = gst.element_factory_make ("ffmpegcolorspace") b = gst.Bin() b.add (goom, colour, sink) b.add_pad(gst.GhostPad("sink", goom.get_pad("sink"))) goom.link(colour) colour.link(sink) shell.get_player().props.player.add_tee(b)
답변
모든 파이썬 객체와 마찬가지로 dir () 메소드를 사용하여 그것에 대해 많은 것을 알 수 있습니다. 이것은 당신에게 시작하기 좋은 곳을 제공 할 것입니다.
You can access the main window through the 'shell' variable :
<rb.Shell object at 0x9e9675c (RBShell at 0x987b018)>
>>> dir(rb.Shell)
['__class__', '__cmp__', '__copy__', '__deepcopy__', '__delattr__', '__dict__',
'__doc__', '__format__', '__gdoc__', '__getattribute__', '__gobject_init__',
'__grefcount__', '__gtype__', '__hash__', '__init__', '__module__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'add_to_queue', 'add_uri', 'add_widget', 'append_source',
'chain', 'connect', 'connect_after', 'connect_object', 'connect_object_after',
'disconnect', 'disconnect_by_func', 'do_notify', 'emit', 'emit_stop_by_name',
'freeze_notify', 'get_data', 'get_party_mode', 'get_player',
'get_playlist_manager', 'get_properties', 'get_property',
'get_source_by_entry_type', 'get_ui_manager', 'guess_source_for_uri',
'handler_block', 'handler_block_by_func', 'handler_disconnect',
'handler_is_connected','handler_unblock', 'handler_unblock_by_func', 'load_uri',
'notebook_set_page', 'notify', 'notify_custom', 'present', 'props',
'register_entry_type_for_source', 'remove_from_queue', 'remove_widget',
'set_data', 'set_properties', 'set_property', 'stop_emission', 'thaw_notify',
'toggle_visibility', 'weak_ref']
그런 다음 ‘get_player’와 같이 흥미로운 모양의 속성을 dir () 할 수 있습니다.
살펴볼 또 다른 좋은 장소는 객체에 __doc__ 속성이있는 경우입니다.
>>> print rb.Shell.__doc__
Object RBShell
Signals from RBShell:
visibility-changed (gboolean)
visibility-changing (gboolean, gboolean) -> gboolean
create-song-info (RBSongInfo, gboolean)
removable-media-scan-finished ()
notify-playing-entry (gboolean)
notify-custom (guint, gchararray, gchararray, GdkPixbuf, gboolean)
Properties from RBShell:
no-registration -> gboolean: no-registration
Whether or not to register
no-update -> gboolean: no-update
Whether or not to update the library
dry-run -> gboolean: dry-run
Whether or not this is a dry run
rhythmdb-file -> gchararray: rhythmdb-file
The RhythmDB file to use
playlists-file -> gchararray: playlists-file
The playlists file to use
selected-source -> RBSource: selected-source
Source which is currently selected
db -> RhythmDB: RhythmDB
RhythmDB object
ui-manager -> GtkUIManager: GtkUIManager
GtkUIManager object
clipboard -> RBShellClipboard: RBShellClipboard
RBShellClipboard object
playlist-manager -> RBPlaylistManager: RBPlaylistManager
RBPlaylistManager object
removable-media-manager -> RBRemovableMediaManager: RBRemovableMediaManager
RBRemovableMediaManager object
shell-player -> RBShellPlayer: RBShellPlayer
RBShellPlayer object
window -> GtkWindow: GtkWindow
GtkWindow object
prefs -> RBShellPreferences: RBShellPreferences
RBShellPreferences object
queue-source -> RBPlayQueueSource: queue-source
Queue source
library-source -> RBLibrarySource: library-source
Library source
sourcelist-model -> RBSourceListModel: sourcelist-model
RBSourcelistModel
sourcelist -> RBSourceList: sourcelist
RBSourcelist
source-header -> RBSourceHeader: source header widget
RBSourceHeader
visibility -> gboolean: visibility
Current window visibility
Signals from GObject:
notify (GParam)
답변
문제는 무엇인지 (2.5 년 후) 알게 된 것입니다. 어떤 이유로 든 내 “입력”키는 numlock의 설정 여부에 따라 두 가지 다른 주요 이벤트에 매핑됩니다. numlock이 켜져 있으면을 반환 KP_ENTER
하고 numlock이 꺼져 있으면을 반환합니다 Return
. 키패드로 숫자를 입력하는 것을 선호하기 때문에 항상 numlock이 켜져 있습니다.
불행히도 Rhythmbox의 python 콘솔은 Return
명령을 실행하는 것만 인식 합니다. KP_ENTER
이벤트는 줄 바꿈에 들어갑니다 …
그러나 쉬운 수정, 콘솔을 사용할 때 numlock을 끄십시오. 다른 응용 프로그램 (일반적으로 게임) 에서이 문제에 부딪 쳤으므로 더 나은 장기 솔루션을 살펴볼 것입니다 (둘 다 Return
어떻게 든 매핑해야 할 수도 있습니다 ).