2016-05-30 28 views
0

QDialをサブクラス化したいのですが、 は、最小値になっているときに値をmax(簡単に)に変更できるためです。最高から最低まで同じ問題。サブクラスのQDialがMinからMaxへの移動を停止する方法

これを行うために、私はQDialをサブクラス化しなければならないことを知っています。 しかし、私はどこから始めるべきかわかりません。

答えて

0

私はあなたにガイダンスを提供するかもしれません...試してみましょう。

あなたが再実装すべきターゲットメソッドのようなマウス操作を処理

  • virtual void mouseMoveEvent(QMouseEvent *e)
  • virtual void mousePressEvent(QMouseEvent *e)
  • virtual void mouseReleaseEvent(QMouseEvent *e)

ているので、あなたが、QDial、ないQAbstractSliderで始まる必要がありますまず第一に名前の状態。 sourceを見ると、問題の方法は単にカーソルの位置を有効なダイヤル位置にマッピングしようとしていることがわかります。ここでは、無効にしたい「ジャンプ」が発生します(ページ上/下、矢印上/下、マウスホイール、マウスのクリック/ドラッグ)して、未定義の値をスキップすることができます。 )。さらに、アプリケーションがサポートする値にpageStepを設定することもできます。私はあなたがvalueFromPoint方法とデクリメントまたはインクリメントの結果を取ることを提案することができるソリューションとして


代わりに、結果にそれを設定する電流値(値が小さいか大きい場合)。これにより、ジャンプが無効になります。

Qt5.6.0

関連する問題