현재 나는 3 QActions와 QMenuBar을 가지고 있고 그것은 다음과 같습니다 정렬하기 QMenuBar 항목 (왼쪽에 몇 가지를 추가하고 오른쪽 측면에서)
하지만 난이 (오른쪽 정렬 일부 QActions를 얻을 좀하고 싶습니다) :
이 방법이 있습니까?
감사합니다 :)
현재 나는 3 QActions와 QMenuBar을 가지고 있고 그것은 다음과 같습니다 정렬하기 QMenuBar 항목 (왼쪽에 몇 가지를 추가하고 오른쪽 측면에서)
하지만 난이 (오른쪽 정렬 일부 QActions를 얻을 좀하고 싶습니다) :
이 방법이 있습니까?
감사합니다 :)
그런데 한 가지 가능한 솔루션은 here입니다. 그러나 그것은 당신 자신의 스타일 (QStyle)을 구현하는 것을 포함합니다.
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) {
ui->setupUi(this);
QMenuBar *barLeft = new QMenuBar;
QMenuBar *barRight = new QMenuBar;
barLeft->addAction("Foo Left 1");
barLeft->addAction("Foo Left 2");
barRight->addAction("Foo Left 1");
barRight->addAction("Foo Left 2");
QHBoxLayout *mainMenuLayout = new QHBoxLayout;
mainMenuLayout->addWidget(barLeft);
mainMenuLayout->addWidget(barRight);
mainMenuLayout->setAlignment(barLeft, Qt::AlignLeft);
mainMenuLayout->setAlignment(barRight, Qt::AlignRight);
QWidget *central = new QWidget;
central->setLayout(mainMenuLayout);
setCentralWidget(central);
}
것은이 적합해야한다 : 그러나 여기 난 그냥 MainWindow를 클래스에 시도 코드 조각이다.
아마도이 특정 문제에 대한 가장 간단한 해결책은 코너 위젯을 사용하는 것입니다. 또한 물론, 가장 오른쪽 위치에 새로운 메뉴 표시 줄을 거의 아무것도를 배치하는 데 사용할 수 있습니다
QMenuBar *bar = new QMenuBar(ui->menuBar);
QMenu *menu = new QMenu("Test menu", bar);
bar->addMenu(menu);
QAction *action = new QAction("Test action", bar);
bar->addAction(action);
ui->menuBar->setCornerWidget(bar);
결과 :이 ESP입니다
합니다. 메인 메뉴가 여전히 QDesigner에서 편집 될 때 도움이됩니다 ...