[openrtm-users 03432] Re: Python/Examples/Slider_and_Motor

MASUTANI Yasuhiro masutani @ osakac.ac.jp
2017年 9月 7日 (木) 20:58:06 JST


高橋様,

大阪電通大の升谷です.
返信ありがとうございます.

同じように例外処理を追加してみましたが,それでスルーされる場合もありま
すが,かなりの割合でPython自身が異常終了してしまいます.環境の違いによ
るものでしょうか?

高橋様は,どのような環境を試されていますか?私は,Windows 10 64bitに
Python 2.7.10 64bitです.

Tkinterをあまりわからぬまま使っていましたが,調べているうちにScaleの使
い方が他の事例と異なることに気が付きました.スライダの値を得るために,
他の事例では,variableオプションの指定した変数のget()メソッドを使って
いますが,slider.pyでは,Scaleのインスタンスのget()メソッドを使ってい
ます.試しに,

	def get(self):
		val = []
		for s in self.scales:
			val.append(s.get())
		return val

を

	def get(self):
		val = []
		for v in self.var:
		        val.append(v.get())
		return val

と書き換えてみたところ,例外は出なくなり,問題は解決したように見えます.

いかがでしょうか?検討をお願いいたします.

On Wed, 06 Sep 2017 19:11:56 +0900,
Takahashi Saburo <takahashi.saburo @ aist.go.jp> wrote:
> 
> To:升谷様
> 
> いつもお世話になっております.
> 産総研の高橋です.
> 
> 手元でも試してみたところ,激しくスライダを動かした際に
> Tkinter が例外を吐いてしまうようです.
> 
> 私の環境では,ひとまず slider.py の中で下記のように例外を処理すれば落ちなくなりました.
> お手数をお掛けして申し訳ございませんが,一度ご確認いただけませんでしょうか.
> 
> slider.py
> -----------
> 	def get(self):
> 		val = []
> 		for s in self.scales:
> + 			try:
> +				val.append(s.get())
> +			except:
> +				print('get error!!!!')
> 
> 		return val
> 
> 	def set(self, value):
> 		i = 0
> 		for v in value:
> +			try:
> +				self.scales[i].set(v)
> +			except:
> +				print('set error!!!!')
> 
> 
> 以上です.
> よろしくお願い致します.

-- 
# 升谷 保博
# 大阪電気通信大学 総合情報学部 情報学科
# 575-0063 大阪府四條畷市清滝1130-70 / TEL&FAX: 072-876-5107
# ヒト型レスコン@大阪電通大 2017.11.5 http://goo.gl/AjTWD2


More information about the openrtm-users mailing list