【问题标题】:chrome-like status bar in qtqt中类似chrome的状态栏
【发布时间】:2011-02-26 14:48:35
【问题描述】:

我不擅长创建 GUI,通常我的理念是:我不创建它们,或者我让它们尽可能简单(并说服自己它对可用性更好:)

对于我当前的项目,我正在使用 Python 中的 Qt (PyQt),我想开始添加一些 GUI 元素而不会使界面混乱。

我的想法是将这些元素创建为一种浮动形状的小部件,仅在必要时出现;很像 chrome 中的状态栏(和查找栏)。

是否有任何标准 api 可以创建这种接口?

【问题讨论】:

  • 看看 rekonq 浏览器 (rekonq.sourceforge.net)。它有和chrome一样的状态栏,是用Qt写的。
  • 这似乎只是一个 hack,无论如何我都可以这样做.. 我要求的是某种可靠的 api(如果有的话!!)

标签: user-interface qt hci


【解决方案1】:

这不是很复杂。如果你想要 Chrome 中的状态栏之类的东西,你只需要在窗口底部有一个 QFrame 并在需要时显示或隐藏它。

您在这里有 2 个选项,添加是作为窗口布局的一部分,因此所有项目在显示时都会向上移动。或者你可以让 if 浮动,所以它会显示在项目的顶部。对于第二个选项,您需要创建以窗口为父窗口的 QFrame,然后在窗口 resizeEvent 中设置框架的几何形状。

这是第二种方法的一个例子:

void MyWindow::resizeEvent(QResizeEvent* 事件) { frame.setGeometry(0, this->height() - frame.sizeHint().height(), this->width(), frame.sizeHint().height()); }

我希望这会有所帮助。

【讨论】:

  • 不客气 :)。如果你想做得更酷,你可以添加动画,这样栏就会在它出现时长大。您可以将 QTimeLine 用于连接到使栏在显示事件时增长的插槽。 (我认为动画也有特殊的 Qt 类,但我从未尝试过)
  • 如果我们想在这个浮动状态栏中支持标准状态提示(来自工具栏按钮、菜单等)怎么办?
猜你喜欢
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 2011-09-02
  • 2011-09-17
相关资源
最近更新 更多