2013-03-16 60 views
0

我是QT界面的新手。我想在桌面应用程序中创建滑动窗口小部件(无QML)。想法是在某些网页上创建类似facebook组件的滑动菜单。 例如:QT - 滑动部件

  1. 我有主窗口,我想对窗口右边窗口小部件的一小部分
  2. 当这个小部件的鼠标移动(或点击它),那么这个widget幻灯片显示所有其内容。

我知道如何创建动画和处理鼠标事件。有很多关于它的例子。问题是这个菜单小部件不应该与其他布局和小部件交互。我的意思是,主窗口具有根横向布局,我不知道如何从它中排除该小部件,并将小部件放置在主窗口上的所有小部件前面。 QT中是否存在一些图层?

+0

我没有在这台机器上测试的'Qt',但我记得过去可以通过使用'QFrame'来保存重叠的小部件。一个框架中的小部件可以展开/移动/重叠另一个框架中的小部件,而不会触发布局调整。你可以在'QtDesigner'中设置一个简单的测试 - 只需添加几帧(使用尺寸/位置,以及是否是另一个的孩子),并且有一个底部和顶部部件,并尝试调整它们的大小。 – tmpearce 2013-03-16 22:05:57

+0

准确地说,我的观点是在本网站(波兰语)http://www.joemonster.org上获得类似的效果,如Facebook组件。在右边你有facebook菜单,当鼠标放在它上面时它会滑动。我可以通过QFrame吗? – Dibo 2013-03-16 23:21:30

回答

0

您可以通过覆盖自定义QDockWidget来实现类似的功能。这个小部件可以在相对于你的主窗口的固定位置上漂浮在其他小部件上面。将主窗口的调整大小/移动事件连接到QDockWidget上保持同步位置的插槽。

+0

准确地说,我的观点是在本网站(波兰语)http://www.joemonster.org上获得类似的效果,如Facebook组件。在右边你有facebook菜单,当鼠标放在它上面时它会滑动。我可以通过QDockWidget获取它吗? – Dibo 2013-03-16 23:20:59

+0

在Qt设计器上使用它。只需将一个QDockWidget拖放到MainWindow的右侧停靠区,看看它是否为您提供了所需的功能。如果是这样,你将不得不自定义其外观相当数量(透明背景,没有轮廓,适当的背景等),以获得你想要去的地方。 – Phlucious 2013-03-18 15:53:33