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

Qt QMdiArea内の子ウィンドウのドロップ処理を制御する

2012/12/16
(この記事の文字数: 228)
Qt 

QMdiAreaを使ってMDI内のウィンドウごとにドラッグアンドドロップを制御する方法を模索していたのですが、なかなか簡単な方法が見つからないので、最終的にドラッグアンドドロップをした座標にMDIの子ウィンドウがあるかどうかを識別して、子ウィンドウごとのドロップ時の挙動を制御することにしました。

具体的には下記のような関数を作って子ウィンドウの有無を識別しました。


bool IsOnWidget( QPoint pos, const QWidget* widget )
{
    if( widget==NULL){ return false; }

    QPoint win_pos  = widget->pos();
    QSize  win_size = widget->size();
    int    win_r_bottom_px = win_pos.x() + win_size.width();
    int    win_r_bottom_py = win_pos.y() + win_size.height();

    return ( (win_pos.x() < pos.x())&& (pos.x() < win_r_bottom_px) )
       && ( (win_pos.y() < pos.y())&& (pos.y() < win_r_bottom_py) );
}

もっと簡単な方法があるかもですが、この方法もそんなに大変ではないので使うのは難しくないです。


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

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

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

コメント(0 件)



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