QMenuBar выравнивает QAction по центру - PullRequest
1 голос
/ 26 февраля 2020

Я принудительно устанавливаю ширину QMenuBar на 40 с помощью установки minmumsize на 40.
Есть ли способ установить эти Действия по центру, а не сверху?
top-padding, кажется, не работает для меня.

enter image description here

1 Ответ

1 голос
/ 28 февраля 2020

Если я правильно понял ваш вопрос, вы можете настроить QMenuBar, используя что-то вроде этого:

main. cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.setStyleSheet("QMenuBar { min-width: 80px; min-height: 80px; } ");
    MainWindow w;
    w.show();
    return a.exec();
}

основное окно. cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QMenu *menu_a = menuBar()->addMenu(tr("&AAA"));
    menu_a->addAction("AAA");
    QMenu *menu_b = menuBar()->addMenu(tr("&BBB"));
    menu_b->addAction("BBB");
    QMenu *menu_c = menuBar()->addMenu(tr("&CCC"));
    menu_c->addAction("CCC");

    QWidget *central = new QWidget;
    setCentralWidget(central);
}

MainWindow::~MainWindow()
{
    delete ui;
}

С этим кодом вы получите следующее меню:

enter image description here

Это Также можно настроить элементы:

QMenuBar::item { padding-top: 40px; }
...