当前位置: 代码迷 >> QT开发 >> 360或者QQ的这种无边框的界面用Qt是如何做出来的
  详细解决方案

360或者QQ的这种无边框的界面用Qt是如何做出来的

热度:104   发布时间:2016-04-25 03:11:23.0
360或者QQ的这种无边框的界面用Qt是怎么做出来的?
本帖最后由 yimi0903 于 2014-09-04 15:43:03 编辑

如上图。
我有几个问题:
1、这种界面,没有边框,用Qt怎么能做出来?是使用Style?还是隐藏标题栏之后自己加的最大化最小化按钮呢?
2、鼠标指向某一个图标,或者单击某一个图标时,有一个渐变的白色的效果,这是怎么做到的?
------解决思路----------------------
只需要设置一个Qt::FramelessWindowHint即可。
另外请在论坛往前翻找,有仿360界面的代码。
------解决思路----------------------
1.  Qt::FramelessWindowHint;自己加的最小最大关闭按钮
2. enterEvent(), leaveEvent()
------解决思路----------------------
你的窗体构造函数中使用setWindowFlags(windowFlags() 
------解决思路----------------------
 Qt::FramelessWindowHint
------解决思路----------------------
 Qt::WindowStaysOnTopHint);
然后你要自己写一个控件来做你的title,
1.在这个控件中重写mouseMoveEvent来实现窗体托动
2.在这个控件中增加关闭、最大化、最小化按钮
------解决思路----------------------
引用:
Quote: 引用:

1.  Qt::FramelessWindowHint;自己加的最小最大关闭按钮
2. enterEvent(), leaveEvent()

我还有一个问题想问一下,我在bool event(QEvent *event)函数中定义了鼠标移动到关闭按钮时,会用QToolTip显示“关闭”;用void mousePressEvent(QMouseEvent *e);void mouseMoveEvent(QMouseEvent *e); void mouseReleaseEvent(QMouseEvent *e);定义了窗口的移动。可是有了bool event(QEvent *event)这个函数,其他三个函数就不起作用了,这是为什么呢?该如何破?
你这个没有上下文,怎么知道?你把你工程发给我看看,我的邮箱1179678986@qq.com
  相关解决方案