如何在顶部栏中实现工具栏,例如,Tiled
是否已完成?
通常,工具栏如下所示:
示例代码目前如何:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr) {
auto *tbar = new QToolBar();
tbar->addWidget(new QPushButton("Push Me"));
this->addToolBar(tbar);
}
};
答案 0 :(得分:6)
如果您仍在使用Qt 4.x,则可以使用QMainWindow中包含的setUnifiedTitleAndToolBarOnMac(bool set)
函数:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr) {
auto *tbar = new QToolBar();
tbar->addWidget(new QPushButton("Push Me"));
this->addToolBar(tbar);
this->setUnifiedTitleAndToolBarOnMac(true); // activate Mac-style toolbar
}
};
另请参阅:https://qt-project.org/doc/qt-4.8/qmainwindow.html#unifiedTitleAndToolBarOnMac-prop
答案 1 :(得分:5)
如果您使用的是Qt5,请查看QtMacExtras http://qt.gitorious.org/qt/qtmacextras
您可以为您的QToolBar提供原生Mac外观 QtMacExtras :: setNativeToolBar
答案 2 :(得分:1)
如果您继承QMainWindow和/或QToolBar并更改它们加载/拥有的帧类型,您可能能够获得所需的效果。
http://qt-project.org/doc/qt-4.8/qframe.html#details
http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qframe
http://qt-project.org/doc/qt-4.8/stylesheet-customizing.html#the-box-model
另一种可能实现此结果的方法,但有点像hacky,你可以在正在显示的帧的一部分上放置另一个正确颜色的无框小部件。使用Qt:Tool
和Qt::WindowStaysOnTopHint
以及Qt::FramelessWindowHint
,您应该可以让您的掩盖窗口小部件隐藏关节。
希望有所帮助。
答案 3 :(得分:0)
您可以尝试使用样式表删除边框。
tbar->setStyleSheet("QToolBar { border: 0px }");