1

OSX Mavericks で初心者の Qt5(.4.0) コードを書いています。これが私の自己完結型のテストケースです:

#include <QApplication>
#include <QMainWindow>
#include <QtGui>
#include <QMenuBar>
#include <QGridLayout>
#include <QPushButton>

int
main( int argc, char *argv[] ) {
    QApplication app( argc, argv );

    QMainWindow* mw = new QMainWindow();

    mw->menuBar()->setNativeMenuBar( false );

    QMenu* fileMenu = mw->menuBar()->addMenu( "&File" );
    QMenu* optionsMenu = mw->menuBar()->addMenu( "&Options" );

    QWidget* menuCorner = new QWidget( mw->menuBar() );

    QGridLayout* cornerLayout = new QGridLayout();

    QPushButton* newWindowButton = new QPushButton( "New Window" );

    cornerLayout->addWidget( newWindowButton, 1, 0 );

    menuCorner->setLayout( cornerLayout );

    mw->menuBar()->setCornerWidget( menuCorner );

    mw->show();

    return app.exec();
}

「新しいウィンドウ」プッシュボタンは、意図したとおりにメニューバーの右側に表示されますが、「新しいウィンドウ」プッシュボタンの下半分は、メニューバーの下の区切り線によって切り取られて隠されています。

ここに画像の説明を入力

新しいコーナー ウィジェット プッシュボタンをメニューバーに完全に表示させるにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

OSX メニュー バーの高さは固定である必要があり、ボタンがそこに収まりません。レイアウト マージンを削除してみてください。

cornerLayout->setContentsMargins(0, 0, 0, 0);

および/またはボタンを小さくします:

newWindowButton->setMaximumHeight(30);

また、必要に応じて余白を調整します。

menuCorner->setStyleSheet("margin-top: 2");

これは私にとってどのように見えるかです:

于 2015-02-27T08:47:01.717 に答える