• 8685阅读
  • 6回复

【提问】请教一下,closeevent为什么只触发一次,以后再次点击右上角X,不再触发了? [复制链接]

上一主题 下一主题
离线eckel
 

只看楼主 倒序阅读 楼主  发表于: 2005-10-13
void my_Qscrollview::closeEvent(QCloseEvent *e)
{
  QPoint p;
 
  m_flowFlag = false;
  reparent(m_parent, 0, p, true);
}

代码如上,my_Qscrollview继承自Qscrollview存在于一个widget当中,我用my_Qscrollview实现这个view的浮动功能,当浮动以后,现在点击右上角的X按钮让他回到widget当中去,第一次操作正常,以后再也不响应此事件,哪位知道原因吗,请不吝赐教。谢谢
离线eckel

只看该作者 1楼 发表于: 2005-10-13
谁知道如何使用将widget右上角的“X” button去掉?
谁知道如何使用将widget右上角的“X” button去掉?
谢谢。
离线myer

只看该作者 2楼 发表于: 2005-10-14
to 一楼:问题能否具体些?什么第一次操作正常等等。。。
to 二楼:see about Qt::WFlags。
http://user.qzone.qq.com/56430808
离线eckel

只看该作者 3楼 发表于: 2005-10-14
void my_Qscrollview::closeEvent(QCloseEvent *e)
{
QPoint p;

m_flowFlag = false;
reparent(m_parent, 0, p, true);
}  
void EMULATOR_view::mouseDoubleClickEvent(QMouseEvent *)
  {
    QPoint p;
        m_flowFlag = true;
        reparent(NULL, 0, p, true);
        MDEBUG_INFO("mouseDoubleClickEvent, m_zoomScale:%f", m_zoomScale);
  }


谢谢斑竹的解答。我想用Doubleclick事件实现窗口的浮动效果,用closeEvent实现关闭窗口的浮动,使之恢复唯一个嵌入式窗口。 现在遇到的问题是,第一次双击,窗口浮动起来,点击右上角X button,窗口恢复为嵌入式窗口,第二次双击,窗口浮动,再点击右上角X button,窗口无任何响应,用DDD跟进去发现,第二次根本没有进去 closeevent事件。请问这是什么原因呢,谢谢不吝赐教。
离线eckel

只看该作者 4楼 发表于: 2005-10-14
to 三楼,把 Qt::WFlags都仔仔细细看了一遍,怎么就没看见哪个值是隐藏到X button的。:(
离线myer

只看该作者 5楼 发表于: 2005-10-14
你应该用的是3系列版本,不过关系应该不大,至少你应该说明。
点击x button,我想是不可能恢复为嵌入窗口的,而是直接关闭。
reparent本身是没问题的,但是点击关闭自然关闭了。

隐藏x button,参考Qt::SubWindow或类似的,至少Qt::SubWindow是可以的。
http://user.qzone.qq.com/56430808
离线eckel

只看该作者 6楼 发表于: 2005-10-18
谢谢斑竹的解答,
但是第一次我点击x button,响应了closeevent事件,通过调用closeevent中的reparent(m_parent, 0, p, true); 浮动窗口变为了嵌入式窗口。

再次双击屏幕,通过调用mouseDoubleClickEvent中的reparent(NULL, 0, p, true);窗口再次成为浮动窗口,在当前情况下,无论如何点击x button都无法响应closeevent事件。 为什么连closeevent事件都无法响应了????????????
快速回复
限100 字节
 
上一个 下一个