QTreeViewでドラッグアンドドロップで移動する行を実装し、行間にドロップインジケータを表示する必要があります。私はインジケータの描画をオーバーライドする方法があるのだろうかと疑問に思っています。そのため、行間だけの階層のすべてのレベル(アイテムの周囲の矩形ではありません)に表示され、行は行全体と同じ幅でなければなりません)。QTreeView描画ドロップインジケータ
4
A
答えて
9
ウィジェットを描画するために使用されるモディフィングスタイルで可能です。私の試みはうまくいくように見えましたが、それはQtのスタイルシステムをちょっと欺くことなので、すべてのプラットフォームですべての可能なスタイルの下で動作することは保証できません。だからここにあります:
class myViewStyle: public QProxyStyle{
public:
myViewStyle(QStyle* style = 0);
void drawPrimitive (PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0) const;
};
myViewStyle::myViewStyle(QStyle* style)
:QProxyStyle(style)
{}
void myViewStyle::drawPrimitive (PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget) const{
if (element == QStyle::PE_IndicatorItemViewItemDrop && !option->rect.isNull()){
QStyleOption opt(*option);
opt.rect.setLeft(0);
if (widget) opt.rect.setRight(widget->width());
QProxyStyle::drawPrimitive(element, &opt, painter, widget);
return;
}
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
myView::myView(QWidget *parent) :
QTreeView(parent)
{
setStyle(new myViewStyle(style()));
}
+0
ありがとう。あなたのコードはXfce-DEで正常に動作します。あなたのコードをPythonに "移植"しました。私はQTに含まれている単純な解決策を見つけませんでした。何かを学んだ。 – user3469861
関連する問題
- 1. 描画領域に画像を描画
- 2. 描画のグラフィックをwinformsで描画
- 3. QTreeViewのハイパーリンク
- 4. PyQtは:QTreeView
- 5. QAbstractItemModelとQTreeView
- 6. QTreeViewのチェックボックス
- 7. QTreeViewとsetIndexWidget
- 8. Qt - QTreeViewとSQL - パフォーマンスアドバイス
- 9. QTreeViewまたはQTreeWidget
- 10. グラデーションラベルを描画
- 11. C#描画テキスト
- 12. 描画フリッカーフリーライン
- 13. カスタムリストビューの描画
- 14. 描画用アニメーション
- 15. ピクセル描画ライブラリ
- 16. 描画ヒストグラム
- 17. グラフ描画アルゴリズム
- 18. インタラクティブダイアグラムの描画
- 19. CGImageRefに描画
- 20. JavaScript描画データベーススキーマ
- 21. スイングラインブレークオーバーライドグラフィックス描画
- 22. ベストグラフ描画ライブラリ
- 23. 再描画AmStockChart
- 24. トポロジ描画ツール
- 25. アクティビティの描画
- 26. オンライン描画アプリケーション
- 27. 再描画グーグルチャート
- 28. クロススレッドタブの描画
- 29. Javaの描画画像が
- 30. ASP.NETカレンダー描画コントロール
私は同様の問題に直面しています。誰も知らない(または伝えたい:P)ので、いつものように、もう少し時間があるときは、qtのソースを掘り下げて、可能なものとそうでないものを見つけます。私が何かを知ったら、私はあなたの質問に答えようとします。 –