2017-01-10 20 views
0

Qtバグ、またはアプリのバグのいずれかである可能性があります。私は誰かがこれを診断するのを助けることを望んでいます。QSpinboxの矢印を押したときにdouble valueChangedイベントが発生しないようにするにはどうすればよいですか?

私は、qtdesignerとpyuic5を使用して構築されたインターフェイスでPyQt5アプリケーションを構築しています。

私は私はこのような二つの方法に接続whoch私の窓でQSpinBoxウィジェットにあります

self.img1IndexBox.valueChanged.connect(self.changeImage1) 
self.img2IndexBox.valueChanged.connect(self.changeImage2) 

すべてが一つのことを除いて、アプリケーションで正常に動作するようです:私は上にマウスをスクロールするとスピンボックス、私はそれを値を増加させることができます。テキストで値を変更すると、すべて正常に動作します。スピンボックスでキーボードの矢印を使用するとうまくいきます。しかし、スピンボックスから上向き矢印または下向き矢印のいずれかをクリックすると、2つの増分のイベントが2つ得られます。同じように私は2回クリックした。実際には、アニメーションからは、ダウンプレッサーのイベントを作成しているように見え、ボタンが戻ったときに別のイベントが表示されます。

これは単なるライブラリのバグでも、私のプログラムでこれを引き起こしている可能性がありますか?どのように私はこれをデバッグできますか?

答えて

0

明らかに問題は、イベントが非常に長いルーチンをトリガしていることです。これは「ボタンリリース」イベントを遅らせ、システムがユーザーに実際にボタンを押していると思うようになる時間です。しかし、私はまだ何が良い歩行になるかを学ぶことに興味があります。そのメソッドのスレッドを開始するには良いpyqt-onic方法がありますか?

http://www.qtcentre.org/archive/index.php/t-43078.html

+0

ほとんどのソリューションはそれを処理するための完全にQObjectを作成するような何かを必要とするが、私はmatplotlibのFigureCanvasQTAggで図面を更新しています、それはそう長く取っているものです。それで、より自然な方法でそれを実現できるウィジェットを作成する方法を理解することは良いことです。 – dividebyzero

+0

キャンバスには実際に同期 'draw()'と非同期 'draw_idle()'メソッドがあり、これを使うのがおそらく道です。このような質問と回答を投稿して申し訳ありませんが、情報をまとめて誰かにとって有用なものになることを願っています。 – dividebyzero

関連する問題