5

たとえば、ツールバーをトップバーに実装するにはどうすればよい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);
    }
};
4

4 に答える 4

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
    }
};

参照: https://qt-project.org/doc/qt-4.8/qmainwindow.html#unifiedTitleAndToolBarOnMac-prop

于 2013-09-08T13:55:29.977 に答える
5

Qt5 を使用している場合は、QtMacExtras ( https://github.com/qt/qtmacextras )を確認してください。

QtMacExtras::setNativeToolBar を使用して、QToolBar にネイティブ Mac のルック アンド フィールを与えることができます。

于 2013-06-08T20:48:28.783 に答える
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

この結果を達成する別の方法ですが、ハックのようなものです。表示されているフレームの一部の上に、適切な色の別のフレームレス ウィジェットを配置することもできます。Qt:ToolQt::WindowStaysOnTopHintとを使用するとQt::FramelessWindowHint、カバーアップ ウィジェットでジョイントを非表示にできるはずです。

それが役立つことを願っています。

于 2013-05-22T06:37:47.250 に答える
0

スタイルシートを使用して枠線を削除してみてください。

tbar->setStyleSheet("QToolBar { border: 0px }");
于 2013-05-30T13:58:47.513 に答える