
Ubuntu日本語フォーラム
ログインしていません。
こんにちは。初めての投稿なので見苦しい箇所があったら申し訳ありません。
Ubuntu16.04 LTSでの話になります。
今私は明るさ調整機能を持つインジケータ(画面の左上に出る小さいアイコン、音量とかBluetoothとかのアレ)を自作しています。
使用言語はpython2.7.12です。
それで、コンテキストメニューといえば良いのでしょうか、アイコンをクリックした時に出てくるメニュー画面を作っているのですが、その中でスライダーを使いたいと思っています。しかし、どのようなコードを書いたらスライダーを実装できるのかわかりませんでした。
イメージとしては、音量のアイコンを押した時に出てくる音量調整スライダーのようなものを実装したいです。
メニュー画面のコードは以下のような感じでとりあえず作ってあります。
----------
def menu_setup(self):
self.menu = gtk.Menu()
#スライダ表示部
scale_hbox = gtk.HBox()
scale = gtk.HScale()
scale.set_adjustment(gtk.Adjustment(value=0.6, lower=0.3, upper=1.0, step_incr=0.1, page_incr=1, page_size=0))
scale.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale.connect("value_changed", self.change_brightness)
scale_hbox.pack_start(scale)
self.menu.append(scale_hbox)
#仕切り線
breaker = gtk.SeparatorMenuItem()
breaker.show()
self.menu.append(breaker)
#Aboutメニュー
show_about_item = gtk.MenuItem("About")
show_about_item.connect("activate", self.menu_about_dlg)
show_about_item.show()
self.menu.append(show_about_item)
#終了メニュー
quit_item = gtk.ImageMenuItem("Quit")
quit_item.set_image(gtk.image_new_from_stock('gtk-quit', gtk.ICON_SIZE_MENU))
quit_item.connect("activate", self.menu_quit)
quit_item.show()
self.menu.append(quit_item)
-----------------
ただ、このような状態で実行すると、
GtkWarning: IA__gtk_menu_shell_insert: assertion 'GTK_IS_MENU_ITEM (child)' failed self.menu.append(scale_hbox)
というエラーが出ます。
hboxはmenu_itemじゃないから使えないらしいですね。ちなみにhboxに入れず、そのままHScaleをappendしても同じような結果でした。
いろいろ調べたのですが、結局解決方法は分からずじまいです・・・
でも音量調整のスライダーがあるんですから実装方法は何かしらあるんだと思います。
その実装をしているソースコードでも探しだすことができれば良いのですが、僕の検索能力では探しだすことができませんでした・・・。
メニュー画面内でのスライダーの実装方法について何か情報をお持ちの方はいらっしゃいませんか?
pythonでなくても大丈夫です。
どなたか協力していただけるとありがたいです。
オフライン