1

QTableView の行全体と行のみを選択したいと思います。ユーザーは、セルがあることを知らないはずです。適切な SelectionMode を設定できますが、それでも:

  • 行が選択されている場合、各セルの角は丸くなっています
  • QTableViewでマウスを動かすと「フォーカス」が移動し、カーソルの下のセルが選択されます

この問題を回避するにはどうすればよいですか?

4

3 に答える 3

1

デリゲートを使用する必要があります。

方法は次のとおりです: http://qt-project.org/faq/answer/how_can_i_remove_the_dotted_rectangle_from_the_cell_that_has_focus_in_my_qt

Python の場合: http://imath.diandian.com/post/2013-07-09/40051407386

于 2013-11-07T02:37:57.703 に答える
1

QTableViewのメソッドをお試しください

setSelectionBehavior(QAbstractItemView::SelectRows);
于 2012-07-21T01:58:37.560 に答える
1

私も同じ問題を抱えていました。

QTreeView複数の列(テーブルなど)をサポートするを使用することになりました。デフォルトのドラッグ アンド ドロップ動作では、行のみをドラッグ、移動、並べ替えできます。

行相互作用のみのテーブルのように表示して動作させるには、次のプロパティを設定する必要があります。

  • allColumnsShowFocus = true (したがって、特定の (列) アイテムの周りにフォーカス フレームが表示されません)
  • headerHidden = false (テーブル ヘッダーを有効にするため)
  • itemsExpandable = false (他のすべてのプロパティが正しく設定されている場合は無視できます)
  • rootIsDecorated = false (これにより、topLevelItems の展開ハンドルが非表示になります)
  • selectionBehavior = SelectRows
  • selectionMode = SingleSelection (または必要に応じて...)
  • 行を移動する場合:
    • dragEnabled = true
    • acceptDrops = true
    • showDropIndicator = true
    • editTriggers::selectedClicked = false
    • すべてのアイテムのアイテム フラグ:
      • ItemIsSelectable = true
      • ItemIsDragEnabled = true
      • ItemIsDropEnabled = false (つまり、topLevelItem をドラッグして別のアイテムの子にすることはできません)
      • ItemIsEnabled = true

topLevelItems のみを使用すると、treeView は希望どおりに動作します。

于 2013-11-08T15:17:47.403 に答える