• 4720阅读
  • 2回复

不显示删除回复显示所有回复显示星级回复显示得分回复 如何让鼠标只在子窗口的范围内响应? [复制链接]

上一主题 下一主题
离线superwave
 
只看楼主 倒序阅读 楼主  发表于: 2010-09-30
— 本帖被 XChinux 执行加亮操作(2010-10-21) —
在qmainwindow里面建立了几个Qlabel类型的子窗口

QLabel *label1 = new QLabel;
QLabel *label2 = new QLabel;
QLabel *label3 = new QLabel;

QSplitter *upSplitter = new QSplitter(Qt::Horizontal);
upSplitter->addWidget(label1);
upSplitter->addWidget(label2);
upSplitter->addWidget(label3);

试图点击鼠标左键,然后就弹出一个对话框, 但是我想只在label1的窗口范围内响应,不知该怎么做好?
离线superwave
只看该作者 1楼 发表于: 2010-09-30
我尝试:

label1x=label1->width();
label1y=label1->height();
然后:
void QLabel::mousePressEvent(QMouseEvent *ev)
{
if (ev->button()== Qt::LeftButton)
{
int x=ev->x();
  int y=ev->y();
if (x<label1x&&y<label1y)
{

GraphViewer *imageViewer = new GraphViewer;
imageViewer->show();
}
}
}

但是这样很奇怪,响应鼠标事件的区域大于label1子窗口区域,就是说,虽然在窗口右下角点击鼠标不会响应,但是在子窗口内和离子窗口近的周围区域点击鼠标还是会响应。

求助。

谢谢
离线dbzhang800

只看该作者 2楼 发表于: 2010-10-01
void QLabel::mousePressEvent(QMouseEvent *ev)

我想知道 QLabel 是什么?你自定义的类?
快速回复
限100 字节
 
上一个 下一个