首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2013-12-15 
鼠标在对话框空白地方才能响应事件,在控件上面不响应鼠标事件1、我想实现在groupbox上获取鼠标按下拖动的形

鼠标在对话框空白地方才能响应事件,在控件上面不响应鼠标事件
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()))//判断鼠标是否在空间区域
    {
        

    }

热点排行