[Kde-bindings] QMouseEvent and Buttons() => exeption

yan verdavaine mongaulois at gmail.com
Tue Apr 7 15:04:06 UTC 2009


Hi.
I don't find qyoto bug tracker.
under ubuntu,
when i try use QMouseEvent Buttons function an exeption is generate : cast
invalid to uint..

code :

using System;
using Qyoto;

public class maWidget : QWidget
{
     //position dans le repere widget de click gauche
    QPoint p;
    bool b;


    public maWidget()
        : base(null, (uint)(Qt.WindowType.FramelessWindowHint |
Qt.WindowType.SubWindow))
    {
        b = false;

        Resize(300,300);
        //création d'un mask sous forme de chessboard.
        QBitmap mask = new QBitmap(5,5);
        {
            QPainter p = new QPainter(mask);
            p.FillRect(mask.Rect() , Qt.GlobalColor.color0);
            p.SetPen(Qt.GlobalColor.color1);
            for (int i = 0 ; i < mask.Height() ; ++i)
                for(int j = 0 ; j< mask.Width() ; ++j)
                    if( (i%2 ^ j%2) != 0)
                        p.DrawPoint(j,i);
        }
        //retaille le mask a la taille de la fenetre
        mask = new QBitmap(mask.Scaled( this.Size ));
        //application du mask sur toute la widget
        SetMask(mask);

    }

    protected override void MousePressEvent   ( QMouseEvent  mouseEvent )
    {
        //sauvegarde du point dans le repère widget lors du click gauche
        if(mouseEvent.Button() == Qt.MouseButton.LeftButton)
        {
            p = mouseEvent.Pos();
            b = true;
        }

    }
    protected override void MouseReleaseEvent   ( QMouseEvent  mouseEvent )
    {
        //sauvegarde du point dans le repère widget lors du click gauche
        if(mouseEvent.Button() == Qt.MouseButton.LeftButton)
        {
            b = false;
        }

    }
    protected override void MouseMoveEvent  ( QMouseEvent  mouseEvent )
    {

        *uint but = mouseEvent.Buttons(); // <= cast exeption *
        //repositionne la fênetre en fonction de la postion de la souris
        if(b)
        {
            QPoint po= mouseEvent.GlobalPos() - p;
            Move(po.X(),po.Y() );
        }
    }
}


public class Test
{

    public static int Main(String[] args)
    {
        QApplication app = new QApplication(args);
        maWidget w = new maWidget();
        w.Show();
        return QApplication.Exec();
    }

}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20090407/d0d88b45/attachment.html>


More information about the Kde-bindings mailing list