ロゴ メインコンテンツへ
RSSフィード
「ソフトウェア開発」に関連する記事一覧

Qt QTreeWidgetでアイテム入れ替え後に何か処理を実行する

2013/01/12
(この記事の文字数: 394)
Qt 

QTreeWidgetを継承したクラスでレイヤービューを作っていたんですが、ドラッグアンドドロップモードがInternalMoveであるとき、アイテムをドラッグアンドドロップで移動した後にレイヤーの順番変更を反映する処理を実現する方法がわからなくて苦戦しました。

QTreeWidgetクラスのソースコードを呼んでみるとQTreeWidget::dropEvent関数では一度選択されているアイテムを削除してから、ドロップした箇所の後ろに追加するような処理が入っていました。ということで最終的に下記のように仮想メンバ関数であるdropEventを再実装して、関数内でQTreeWidget::dropEventを最初にコールすることで実現できました。よく考えてみれば当たり前のことなんですけど。


void TreeWidgetSample::dropEvent( QDropEvent * drop_event )
{
    this->QTreeWidget::dropEvent( drop_event );

    /* any processing after item order changed */
}

やはりオープンソースのライブラリだと詰まったときにソースコードが見れるのがありがたいと感じます。


  このエントリーをはてなブックマークに追加  

<<「ソフトウェア開発」の記事一覧に戻る

<<「ソフトウェア開発」の次の記事
「ソフトウェア開発」の前の記事 >>

コメント(0 件)



コンテンツロード: 0.0073 sec
Copyright(C)2006-2024 puarts All Rights Reserved