• 7686阅读
  • 7回复

setMouseTracking() [复制链接]

上一主题 下一主题
离线baixuewei
 
只看楼主 正序阅读 楼主  发表于: 2009-11-30
setMouseTracking()

void mouse::mouseMoveEvent(QMouseEvent * e){
    ui.centralwidget->setMouseTracking(true);

    ui.centralwidget->setToolTip(QString::number(e->x())+","+QString::number(e->y()));
    ui.label1->setText(QString::number(e->x())+","+QString::number(e->y()));
}


QLable 为什么不随鼠标移动更新呢?  还是只有按鼠标一个键再移才有用
离线午小夜

只看该作者 7楼 发表于: 2009-12-01
确保setMouseTracking的widget没有被别的物体覆盖.否则mouseMoveEvent会被上层物体截获,到达不了setMouseTracking的widget
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线baixuewei
只看该作者 6楼 发表于: 2009-11-30
解决了,正如3楼所说   原来 this->setMouseTracking(true);    ui.centralwidget->setMouseTracking(true); 全写就成了


谢谢yb824  与 duduqq
离线baixuewei
只看该作者 5楼 发表于: 2009-11-30
//mouse.cpp
mouse::mouse(QWidget *parent)
    : QMainWindow(parent)
{
    this->setMouseTracking(true);

    ui.setupUi(this);


}

里边   this->setMouseTracking(true);  改成  ui.centralwidget->setMouseTracking(true); 也是不行的
离线baixuewei
只看该作者 4楼 发表于: 2009-11-30
引用第2楼duduqq于2009-11-30 17:26发表的  :
你接收的那个窗体有没有setMouseTracking(true)啊???



是这样的,我在ui.centralwidget里又加了一个 QLabel  想在这个label 里实时显示鼠标位置。  可是我现在只是鼠标身拖拽时label 才会变化。

下边是主要代码

//mouse.h
class mouse : public QMainWindow
{
    Q_OBJECT

public:
    mouse(QWidget *parent = 0);
    ~mouse();

private:
    Ui::mouseClass ui;
protected:
    void mouseMoveEvent(QMouseEvent * e);
};


//mouse.cpp
mouse::mouse(QWidget *parent)
    : QMainWindow(parent)
{
    this->setMouseTracking(true);

    ui.setupUi(this);

}

mouse::~mouse()
{

}
void mouse::mouseMoveEvent(QMouseEvent * e){

    ui.centralwidget->setToolTip(QString::number(e->x())+","+QString::number(e->y()));
    ui.label1->setText(QString::number(e->x())+","+QString::number(e->y()));
}

//加入 label的部分 在 ui_mouse.h
label1 = new QLabel(centralwidget);



我还是新手 望能指教  谢谢
离线baixuewei
只看该作者 3楼 发表于: 2009-11-30
引用第1楼yb824于2009-11-30 17:25发表的  :
ui.centralwidget->setMouseTracking(true);//移到外面去
mouse构造函数里调用setMouseTracking(true);



是应当在外边的,可以在外边也不行。
离线duduqq

只看该作者 2楼 发表于: 2009-11-30
你接收的那个窗体有没有setMouseTracking(true)啊???
离线yb824
只看该作者 1楼 发表于: 2009-11-30
ui.centralwidget->setMouseTracking(true);//移到外面去
mouse构造函数里调用setMouseTracking(true);
快速回复
限100 字节
 
上一个 下一个