11

最小値と最大値として値QSpinBoxを処理できるコントロールを実装する必要があります。int64現在の実装はint32値のみをサポートしています。

一日の終わりには、QSpinBox9223372036854775807と-9223372036854775808の間の任意の値を受け入れる必要があります

サブクラス化によってこれを達成する場合、何をする必要がありQAbstractSpinboxますか?

4

1 に答える 1

15
  1. から派生しQAbstractSpinBoxます。
  2. にを追加しQValidatorて、QLineEdit有効なint64値のみを許可します。
  3. value実際に値を保持するint64メンバーへのアクセスを提供するために呼び出されるプロパティを追加します。
  4. 番号stepBy(int steps)を変更するための実装。
  5. 関心のある特定のメソッドとプロパティQSpinBox(最小/最大制限、プレフィックス、サフィックスなど)を実装します。

基本的に、2つの状態を維持しています。1つは実際のint64値であり、もう1つは。によって保持されるテキストQLineEditです。通常、これは次のように更新されます。

lineEdit()->setText(QString::number(myNumber));

ただし、ユーザーがプレフィックスまたはサフィックスが必要な場合は、少し調整する必要があります。

于 2013-03-27T09:13:07.493 に答える