继承 QWidget 的类的 mousePressEvent 没响应?

tongjing524 2013-07-23 03:44:50
继承 QWidget 的类的 mousePressEvent 和 mouseReleaseEvent 没响应?

AHostList.h

class AHostList:public QWidget
{
Q_OBJECT
public:
AHostList(QString & path);
~AHostList();
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);

};



AHostList.cpp:

AHostList::AHostList(QString &path)
{
this->setCursor(Qt::BlankCursor);
setWindowFlags(Qt::FramelessWindowHint);

m_mainWidget = new QListWidget(this);
char * pFirstText = "NAME SIZE TIME";
m_firstLabel = new QLabel(this);
m_firstLabel->setFont(QFont("Helvetica",14, QFont::Bold,0));
m_firstLabel->setStyleSheet("QLabel{background-color:blue}");
m_firstLabel->setText(pFirstText);
m_firstLabel->resize(800,35);

QDir picdir(path);
fileList = picdir.entryInfoList();
QFileInfo fileInfo;
QString fileText;

m_sumItem = 0;
m_itemCount = (int)fileList.count();
//从2开始是因为有 . ..
for(int i = 2; i < m_itemCount; i++){
fileInfo = fileList.at(i);
fileText += fileInfo.fileName();
fileText += " ";
fileText += QString::number(fileInfo.size());
fileText += "K ";
QString format("MM-dd hh:mm:ss");
//最后修改的时间
fileText += fileInfo.lastModified().toString(format);
pListWidgetItem[i-2] = new QListWidgetItem(fileText,m_mainWidget);
pListWidgetItem[i-2]->setSizeHint(QSize(800,40));
m_mainWidget->addItem(pListWidgetItem[i-2]);

m_sumItem++;
if(i >= 51)
break;
fileText = "";
}
m_mainWidget->setCurrentRow(0);
m_mainWidget->resize(800,440);
m_mainWidget->move(2,40);
m_mainWidget->setFocus();
show();
}

void AHostList::mousePressEvent(QMouseEvent *event)
{
qDebug()<<"!!!!!!!!!!";
//QWidget::mousePressEvent(event);
}

void AHostList::mouseReleaseEvent(QMouseEvent *event)
{
qDebug()<<"||||||||";
}
没有任何打印信息,但是手指随触摸屏移动时列表可以随之移动
...全文
1153 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsy1010 2013-09-10
  • 打赏
  • 举报
回复
我是在QWidget上重载了mousePressEvent事件,但是就是不进入事件中,不过这个QWidget上在播放视频。
tongjing524 2013-07-29
  • 打赏
  • 举报
回复
问题已解决,虽然不是楼下所说的方法,但还是谢谢了 给分
最爱写BUG 2013-07-24
  • 打赏
  • 举报
回复
在构造函数里面调用一下这句话: this->setMouseTracking(true);
jdwx 2013-07-24
  • 打赏
  • 举报
回复
引用 2 楼 tongjing524 的回复:
[quote=引用 1 楼 jdwx1 的回复:] 这几个mouseEvent是protected的虚函数,在QtCreator里是斜体字。 一定要点在没有控件的地方才会有效果。
"没有控件"具体是指什么?[/quote] 没有控件是:假设一个窗体上只有一个按钮,没有控件的地方是按钮区域外面的地方,窗体的空白处。
tongjing524 2013-07-24
  • 打赏
  • 举报
回复
引用 1 楼 jdwx1 的回复:
这几个mouseEvent是protected的虚函数,在QtCreator里是斜体字。 一定要点在没有控件的地方才会有效果。
"没有控件"具体是指什么?
jdwx 2013-07-23
  • 打赏
  • 举报
回复
这几个mouseEvent是protected的虚函数,在QtCreator里是斜体字。 一定要点在没有控件的地方才会有效果。

16,199

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧