在Qt中组合工具栏和标题栏

App*_*ell 5 macos qt qt5

如何在顶部栏中实现工具栏,例如,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);
    }
};
Run Code Online (Sandbox Code Playgroud)

Jen*_*ens 6

如果您仍在使用Qt 4.x,则可以使用setUnifiedTitleAndToolBarOnMac(bool set)QMainWindow中包含的功能:

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
    }
};
Run Code Online (Sandbox Code Playgroud)

另见:https://qt-project.org/doc/qt-4.8/qmainwindow.html#unifiedTitleAndToolBarOnMac-prop


小智 5

如果您使用的是Qt5,请查看QtMacExtras http://qt.gitorious.org/qt/qtmacextras

您可以使用QtMacExtras :: setNativeToolBar为您的QToolBar提供本机Mac外观