Rhythmbox python konsolu nasıl kullanılır


13

Belki bu açıktır ve onu özlüyorum, ya da belki zaten birisi harika bir rehber yazmış ve benim (kapsamlı görünen) googling'im bunu açamıyor, ama benim hayatım için lanet python konsolunu nasıl alacağımı anlayamıyorum bir şey yapmak için ritim kutusu !

Eklenti menüsünden etkinleştirdim ve Araçlar-> Python Konsolu'nu kullanarak açtım.

Yazdırır

You can access the main window through the 'shell' variable :
<rb.Shell object at 0xa6cdd24 (RBShell at 0xa14e000)>
>>> 

Ama istemde yazdığım her şey hiçbir şey yapmaz ! Denedim help, denedim exit(), denedim print "hello world", hiçbir şey bir şey yapmaz!

Tüm bunlar elbette normal bir python konsolunda çalışır. Aradaki farkın ne olduğunu bilmiyorum! Enter tuşuna basmak dışında bir şey yapmam gerekiyor mu?


Terminalden "rhythmbox-client -h" tanıyordum. Bu eklentiden haberdar olmak için +1.
Rojan

Yanıtlar:


8

Rhythmbox Eklentiler Yazma Kılavuzu Eğer Rhythmbox kontrol oynatmaya Python konsolundaki kullanabilir ve değiştirebilir komutların çeşitli örnekler vardır:

  • Oynat durdur

    shell.props.shell_player.playpause()
  • Dur

    shell.props.shell_player.stop()
  • Sonraki parça

    shell.props.shell_player.do_next()
  • Çalma Sırasına şarkı ekleme

    shell.add_to_queue("file://awsome_song.ogg")
  • Görselleştirme görüntüleme

    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)

Bu yardımcı olur ve aslında bunu daha önce bulmuştum, ancak aradığım şey aslında konsolu nasıl kullanacağım. Normal bir python konsolu gibi mi; bir komut yazın ve enter? Eğer öyleyse, o zaman benimki bozuldu. Bir komut yazıp enter tuşuna bastığımda, kod satırını yürütmeden sadece yeni satır yapar. Kırıldığını bildiğim sürece, düzeltmek için yardım isteyebilirim; Sadece aptalca bir şey yapmadığımdan emin olmak istedim (ve bunun belgelenmiş bir kullanımını bulamadım!)
TJ Ellis

Gerçekten bir şey kırılmış gibi geliyor. Başka eklenti etkinleştirilmemiş rhythmbox-0.12.8-0ubuntu7'de, konsol normal bir Python konsolu gibi çalışır, örneğin yazın print "hello world"ve Enter tuşuna basın. Bu sorunun henüz başka hiçbir yerde rapor edilmediğini görmüyorum, bu nedenle Rhythmbox hata izleyicide yeni bir hata açmayı düşünebilirsiniz .
ændrük

1
teşekkür ederim! Şimdi kırık olduğunu biliyorum, ben biraz daha etrafında poke ve bir hata raporu dosya.
TJ Ellis

En azından Ubuntu Trusty tahr 14.04'ten itibaren, ritim kutusunun python 3.4.0'ı gömdüğünü unutmayın. Yani 'print "hello world"' komutu bir sözdizimi hatasıdır;) Bunun yerine, yeni Python 3 yazdırma işlevini kullanın: 'print ("hello world")'
nealmcb

Bu örneklerden bazılarının artık Trusty'de çalışmadığını unutmayın. Shell.add_to_queue () yerine ne yapılması gerektiğine dair bazı ipuçlarına bakın - maalesef çok daha karmaşık görünüyor, ancak ne yazık ki: mail.gnome.org/archives/rhythmbox-devel/2011-April/…
nealmcb

6

Herhangi bir Python nesnesinde olduğu gibi, üzerinde dir () yöntemini kullanarak çok şey öğrenebilirsiniz. Bu size başlamak için iyi bir yer verecektir.

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']

Daha sonra, belki de 'get_player' gibi ilginç görünümlü özelliklerden herhangi birini yönlendirebilirsiniz ().

Bakılacak başka bir iyi yer, nesnede bir __doc__ özniteliği görmenizdir.

>>> 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)

gorram konsolunu çalıştırabilirsem bu kullanışlı! olduğu gibi, örneğin, dir(rb.Shell)yazıp enter tuşuna basarsam, satır sonunu ekler ve hiçbir şey yapmaz ... Kabuğunuz OOB'da çalıştı mı? Ben Ubuntu 10.04 varsayılan ritim kutusu kurulumu var .... Ben kabuk bozacak değiştirdiğim bir şey düşünemiyorum. Düzenli python konsolum (rb dışında) gayet iyi çalışıyor ...
TJ Ellis

Hım, evet, kabuğum hiçbir değişiklik yapmadan iyi çalışıyor.
Brousch

3

Kutsal saçmalık, sorunun ne olduğunu öğrendim (2.5 yıl sonra) - bir sebepten ötürü numlock'un açık veya kapalı olmasına bağlı olarak iki farklı önemli olayla "enter" anahtar eşlemeleri. Numlock açıkken geri döner KP_ENTERve numlock kapalı olduğunda geri döner Return. Her zaman numlock'um var, çünkü tuş takımıyla sayı girmeyi tercih ediyorum.

Ne yazık ki, Rhythmbox içindeki python konsolu sadece Returnbir komut çalıştırmayı tanır - KP_ENTERolay sadece bir satır sonu girer ...

Ancak kolay düzeltme, sadece konsolu kullanırken numlock'u kapatın. Birkaç başka uygulamada (genellikle oyunlar) bu problemle karşılaştım, bu yüzden daha iyi uzun vadeli bir çözüme bakacağım (belki her ikisini de bir şekilde haritaya zorlamak için Return) ...


1
Başka birinin bu sorunu olması durumunda, uzun vadeli bir çözüm buldum: xmodmap -pke > ~/.Xmodmap özel bir düzen oluşturmak için, o dosyanın sonuna bir satır ekleyin ve bu oturum için yeni özel düzeni etkinleştirmek için keysym KP_Enter = Return çalıştırın xmodmap ~/.Xmodmap. Gelecek için otomatik olarak çalıştırmak için aşağıdakileri ekleyin ~/.xinitrc:if [ -f $HOME/.Xmodmap ]; then /usr/bin/xmodmap $HOME/.Xmodmap fi
TJ Ellis

lanet yorumlar ve satır sonu olmaması! ifeklenen açıklamada .xinitrcihtiyaçları sonra satır sonları olması thenve daha önce fi.
TJ Ellis

Niçin returnnumlock tuşu yerine anahtarı kullanmıyorsunuz enter?
Timo

Ben sayısal tuş takımında değil, ana "Enter" tuşunu kullanıyordum; bazı nedenlerden dolayı numlock açık / kapalı olması da bunun için bir fark yarattı.
TJ Ellis

CentOS 6.7 ancak anaconda python ile, NumberPad'deki Enter tuşunun ana klavyedeki Enter tuşundan biraz farklı bir etkisi vardı. NumLock'un bir etkisi olmadı. Ana klavye Enter tuşu '>>>' istemini döndürür ancak NumberPad Enter boş bir satır döndürür.
rjt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.