COZULDU[Form sürükleme]



  • Qt'de bir programda tittle bar'ı kaldırdım ancak o kalkınca pencereyi sürükleyebileceğim bir yer mevcut değil.Neyse ben bu sürükleme için bir alan yaptım kullanıcı o widget üzerine gelip mouse basılı tutunca pencereyi oraya buraya sürükleyebilmesini istiyorum ama nasıl yapacağımı bulamadım.



  • Al sana kod :)

    @
    #ifndef WINDOWTITLEBAR_H
    #define WINDOWTITLEBAR_H

    #include <QWidget>
    #include <QPoint>
    #include <QMouseEvent>

    class WindowTitleBar : public QWidget
    {
    Q_OBJECT

    public:
    WindowTitleBar(QWidget *parent = 0);
    ~WindowTitleBar();
    protected:
    void mousePressEvent (QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    void mouseMoveEvent (QMouseEvent *event);
    private:
    QPoint m_Diff;
    };

    #endif // WINDOWTITLEBAR_H

    @

    @
    #include "windowtitlebar.h"

    WindowTitleBar::WindowTitleBar(QWidget *parent) : QWidget(parent)
    {

    }

    WindowTitleBar::~WindowTitleBar()
    {

    }

    void WindowTitleBar::mousePressEvent(QMouseEvent *event)
    {
    m_Diff = event->pos();

    setCursor(QCursor(Qt::ClosedHandCursor));
    }

    void WindowTitleBar::mouseReleaseEvent(QMouseEvent *event)
    {
    Q_UNUSED(event);

    setCursor(QCursor(Qt::ArrowCursor));
    }

    void WindowTitleBar::mouseMoveEvent(QMouseEvent *event)
    {
    QPoint p = event->globalPos();

    window()->move(p - m_Diff);
    }
    @



  • kodları biraz açıklama şansın var mı?



  • Neden aradaki farka tasidigini anlamadim.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.