QMenuBar 将 QAction 居中对齐
QMenuBar align QAction to center
我通过将 minmumsize 设置为 40,强制将 QMenuBar 的宽度设置为 40。
有没有办法将这些 Actions 设置为居中而不是顶部?
top-padding
似乎对我不起作用。
如果我没有正确理解你的问题,你可以自定义 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();
}
mainwindow.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;
}
使用此代码,您将获得以下菜单:
也可以自定义项目:
QMenuBar::item { padding-top: 40px; }
我通过将 minmumsize 设置为 40,强制将 QMenuBar 的宽度设置为 40。
有没有办法将这些 Actions 设置为居中而不是顶部?
top-padding
似乎对我不起作用。
如果我没有正确理解你的问题,你可以自定义 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();
}
mainwindow.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;
}
使用此代码,您将获得以下菜单:
也可以自定义项目:
QMenuBar::item { padding-top: 40px; }