欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

鼠标在对话框空缺地方才能响应事件,在控件上面不响应鼠标事件

更新时间: 2014-01-05 02:43:40 责任编辑: Author_N1

 

鼠标在对话框空白地方才能响应事件,在控件上面不响应鼠标事件
1、我想实现在groupbox上获取鼠标按下拖动的形成的四个点坐标。
2、可是鼠标放在空间上根本不响应鼠标事件,
3、求各位大大们帮助,急求,详细。

--参考方法--
#include <QApplication>
#include <qgroupbox.h>
#include <QMouseEvent>
#include <qwidget.h>
#include <qdebug.h>
class CGroupBox : public QGroupBox
{
public:
    CGroupBox(QWidget *parent = NULL) : QGroupBox(parent)
    {

    }

protected:
    void mousePressEvent(QMouseEvent *event)
    {
        qDebug() << event->pos();
    }
};


int main(int argc, char**argv)
{
    QApplication app(argc,argv);

    CGroupBox grpBox;
    grpBox.show();

    return app.exec();
}
这是我的测试程序,可以响应按事件
--参考方法--
网上纯粹是误人子弟,这是QDialog,可以响应事件
#include <QApplication>
#include <qgroupbox.h>
#include <QMouseEvent>
#include <qwidget.h>
#include <qdebug.h>
#include <qdialog.h>
#include <qlayout.h>
class CGroupBox : public QGroupBox
{
public:
    CGroupBox(QWidget *parent = NULL) : QGroupBox(parent)
    {

    }

protected:
    void mousePressEvent(QMouseEvent *event)
    {
        qDebug() << event->pos();
    }
};

class CDlg : public QDialog
{
public:
    CDlg(QWidget *parent = NULL) : QDialog(parent)
    {
        CGroupBox *pgb = new CGroupBox(this);
        pgb->setTitle("test");
        QHBoxLayout *phLayout = new QHBoxLayout(this);
        phLayout->addWidget(pgb);
    }

};

int main(int argc, char**argv)
{
    QApplication app(argc,argv);

    CDlg dlg;
    dlg.resize(500, 500);
    dlg.exec();

    return app.exec();
}

--参考方法--
设置控件的mouseTracking属性为真,然后再dialog中判断鼠标坐标是否在控件区域,就可以做想做的操作了。
    QRect lwRect = QRect(ui->taskIdListWidget->pos(),ui->taskIdListWidget->size());//确定控件区域
    if(lwRect.contains(ce->pos()))//判断鼠标是否在空间区域
    {
        

    }
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:43:40
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13590/
本文WWW.DOC100.NET DOC100.NET版权所有。