• 4949阅读
  • 8回复

[提问]自定义标题栏 窗口缩小 [复制链接]

上一主题 下一主题
离线xuxb
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-05
用现成的按钮(QPushButton,QToolButton)做标题栏的控制按钮,最小化窗口之后再点任务栏还原,就会发现按钮还在按下状态。
主要是我发现 被还原后 窗口就不能追踪鼠标了 (用installEventFilter/eventFilter注册的) 请问怎么解决??
承接C/C++ MFC Qt  网络通信等项目!!!
离线XChinux

只看该作者 1楼 发表于: 2012-12-05
以前做的时候也偶尔遇到这个问题,忘记了当时解决了没有,静待楼主解决,哈哈。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线xuxb
只看该作者 2楼 发表于: 2012-12-05
引用第1楼XChinux于2012-12-05 15:05发表的  :
以前做的时候也偶尔遇到这个问题,忘记了当时解决了没有,静待楼主解决,哈哈。[表情]  

哥们儿 你不要这样啊!! 我是初来乍到的!! 想想你当初怎么解决的??帮帮我吧!!郁闷了很多天了!!!
承接C/C++ MFC Qt  网络通信等项目!!!
离线xuxb
只看该作者 3楼 发表于: 2012-12-05
顶一下!!
承接C/C++ MFC Qt  网络通信等项目!!!
离线roywillow

只看该作者 4楼 发表于: 2012-12-05
回 3楼(xuxb) 的帖子
之后立刻向它postEvent一个mouseRelease相关的Event能办到吗?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线xuxb
只看该作者 5楼 发表于: 2012-12-05
Re:回 3楼(xuxb) 的帖子
引用第4楼roywillow于2012-12-05 17:14发表的 回 3楼(xuxb) 的帖子 :
之后立刻向它postEvent一个mouseRelease相关的Event能办到吗?

我是这样做的做的
bool QBaseTitleBar::eventFilter(QObject *obj, QEvent *event)
{
  //按钮状态
  eBtnMoustState eState = eBtnStateNone;
  //判断事件类型--QEvent::Enter 相当于Hover状态 即鼠标放上去的状态
  if (event->type() == QEvent::Enter)
  {
    eState = eBtnStateHover;
  }
  //判断事件类型--QEvent::Leave
  if (event->type() == QEvent::Leave || event->type() == QEvent::MouseButtonRelease)
  {
    eState = eBtnStateDefault;//恢复默认按钮状态
  }
  //判断事件类型--QEvent::MouseButtonPress
  if (event->type() == QEvent::MouseButtonPress &&
      ((QMouseEvent*)(event))->button()== Qt::LeftButton)
  {
    eState = eBtnStatePress;
  }
  //判断目标
  if(m_pBtnMenu == obj || m_pBtnMin == obj ||
     m_pBtnMax == obj  || m_pBtnClose == obj)
  {
    //如果状态有效
    if(eState != eBtnStateNone)
    {
      //根据状态设置按钮图标
      SetBtnIcon((QToolButton *)obj,eState);
      return false;
    }
  }
  return QWidget::eventFilter(obj,event);
}
承接C/C++ MFC Qt  网络通信等项目!!!
离线xuxb
只看该作者 6楼 发表于: 2012-12-05
没有人再看看一下吗??真的挺痛苦的
承接C/C++ MFC Qt  网络通信等项目!!!
离线xuxb
只看该作者 7楼 发表于: 2012-12-05
问题解决了  
承接C/C++ MFC Qt  网络通信等项目!!!
离线xuxb
只看该作者 8楼 发表于: 2012-12-05
不过还是谢过以上同学们啊
承接C/C++ MFC Qt  网络通信等项目!!!
快速回复
限100 字节
 
上一个 下一个