Qt-5.7.0を使用して、タイムアウト値を設定するQSpinBoxが必要です。値は秒または分で指定できます。 QLabelをSpinBoxの後ろに置いて、それがどれであるかを言います。ウィジェットでQKeyEventsを取得するにはどうすればよいですか?
ユーザーがコントロールを操作しているときに、Shiftキーを押したかどうかによって秒から分に変更したいと思います。したがって、例えば、カーソルがスピンボックス上にあるがシフトがない場合、ラベルはMinutes
と表示され、スピンボックス番号は増分または減分することができます。
しかし、カーソルがスピンボックスの上にあり、シフトが押されると、ラベルはSeconds
に切り替わり、スピンボックスの値はprevious_value * 60
に変わり、値を変更することができます。
QtCreatorを使用してQSpinBoxとQLabelをQFrameに配置したので、すべてが適切な場所にまとめられていますが、シフト状態を取得できるスロットはありません。私はスピンボックスon_SB_valueChanged()
機能でshift
をチェックすることができますが、値が変更されたときだけでなく、シフトボタンが押されたときに、が押されたときに、が実際に起こるようにしたいと思います。
標準的な管理方法はありますか? (私はそれを行うカスタムウィジェットを作ることができると思いますが、もっと簡単な方法がありますか?)そのようなカスタムウィジェットはどのようにしてQtCreatorに配置できますか?
スピンボックスは接頭辞と接尾辞をサポートしているので、ラベルは必要ありません。 –
これは最適な解決方法です:0〜10分のスピンボックスですが、1分未満になると、0〜60秒のスピンボックスに切り替えられ、現在の値は59に設定されます。 –
サフィックスを自由に変更できますちょうどあなたがラベル上のテキストを行うのと同じように:) –