在QT中有类似GTK Headerbars的东西吗?

时间:2013-12-04 03:22:23

标签: c++ qt gtk qml

我最近在阅读基础操作系统期刊,我看到了这篇文章The Heuristics of Headerbars。它谈到了新的GTK HeaderBar widget,以及它对设计和用户体验的所有好处。我想知道,对于Qt / QML来说这是可能的吗?

1 个答案:

答案 0 :(得分:1)

http://qt-project.org/doc/qt-4.8/stylesheet.html

http://qt-project.org/doc/qt-4.8/stylesheet-syntax.html

http://qt-project.org/doc/qt-4.8/stylesheet-reference.html

http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qframe

http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qmenubar

我希望系统托盘菜单更容易导航,点击次数更低,我最终使用了这个:

 m_tray_menu->setStyleSheet(
"QMenu {"
    "background-color: white;"
      "margin: 10px;"
 "}"

 "QMenu::item {"
      "padding: 2px 25px 2px 20px;"
     "margin: 10px;"
      "border: 1px solid transparent;"
     "font: 20px;"
     "height: 50px;"
     "width: 250px;"
 "}"

 "QMenu::item:selected {"
      "border-color: black;"
      "background: rgba(0, 255, 0, 150);"
 "}"
 );

所有QML的整个样式使用类似的css样式语法或qss,因为它有时在文档中引用。

此外,如果您想要离开桌面环境的窗口装饰,请使用Qt窗口标志和Qt窗口小部件属性,您可以根据自己的需要制作任何内容。

http://qt-project.org/doc/qt-4.8/widgets-windowflags.html

http://qt-project.org/doc/qt-4.8/qt.html#WindowType-enum

http://qt-project.org/doc/qt-4.8/qt.html#WidgetAttribute-enum

例如:

MyWidget::MyWidget(QWidget * parent): QWidget(parent)
{
    this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);
    this->setAttribute(Qt::WA_TranslucentBackground);
    // this->setAttribute(Qt::WA_NoSystemBackground);// automatically set by previous attribute
}

希望有所帮助。