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