0

ボタン ウィジェットを使用して項目をドラッグしたいと考えています。ラベル ウィジェットを使用している場合、ウィジェットにバインドしてイベントを取得できますが、ボタン ウィジェットはすべてのマウス イベントを消費しているようです。何か案は?

背景: 各行にさまざまな操作を行うためのボタンがいくつかあるグリッドを作成しています。ドラッグ ウィジェットをクリックし、ウィジェットを上下にドラッグして (行全体を運ぶ)、行を並べ替えられるようにしたいと考えています。これが私のGUIです:

+---+--------------+---+---+
|        Title         | + |
+---+--------------+---+---+
| - | Label widget | = | > |
+---+--------------+---+---+
| - | Label widget | = | > |
+---+--------------+---+---+
| - | Label widget | = | > |
+---+--------------+---+---+

「+」は行を追加するボタン (ポップアップを介してデータを入力)、「-」は行を削除するボタン、「>」は行のデータを (ポップアップを介して) 編集できるボタンです。「=」をクリックしてドラッグすると、行を並べ替えることができます。現在は画像ラベルですが、他のコントロールと同じようにボタンにしたいです。

4

1 に答える 1

0

ボタン ウィジェットは、いくつかのイベントのバインドが既にあるという事実を除いて、他のウィジェットと何ら変わりはありません (つまり、それらを無効にするか、それらを操作する準備をする必要があります)。必要なイベントをボタンにバインドすることはできますが、この目的でボタンを使用する理由は疑問です。ほとんどの人は、ボタンをドラッグできるとは思っていません。ボタンは、ドラッグするのではなく、押すことができるというアフォーダンスを提供します。

私だったら、ボタンを次のように並べ替えます。

+---+--------------+---+---+
|        Title         | + |
+---+--------------+---+---+
| = | Label widget | > | - |
+---+--------------+---+---+
| = | Label widget | > | - |
+---+--------------+---+---+
| = | Label widget | > | - |
+---+--------------+---+---+

次に、「=ボタン」を掴めるような画像に変更します。通常、「グリップ」を与えるかのように、2 つまたは 3 つの水平線がある画像のように思えます。それに、真ん中のどこかをつかむよりも、端をつかんで何かを動かす方が一般的だと思います。

これで、左端をつかむことができます (これは間違いなく、物を移動するためのより自然な方法です)。すべての追加/削除ボタンが同じ列に並んでいます。さらに、編集ポップアップ ボタンは、編集中のもののすぐ近くに配置されています。

レイアウトを次のように変更することも検討できます。

+---+--------------+---+---+---+
|             Title            |
+---+--------------+---+---+---+
| = | Label widget | > | - | + |
+---+--------------+---+---+---+
| = | Label widget | > | - | + |
+---+--------------+---+---+---+
| = | Label widget | > | - | + |
+---+--------------+---+---+---+

上記の利点は、常に最後に追加または削除するのではなく、真ん中にボタンを追加できることです。つまり、ユーザーは、クリックではなくワンクリックで行を正確に追加できることを学ぶ可能性があります。そしてドラッグ。

于 2012-09-07T11:42:05.757 に答える