@Mercury13
Программист на «си с крестами» и не только

Qt: как разглючить ОГРОМНОЕ меню по QPushButton под Windows?

Вот код.
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
#include <QMenu>
#include <QMessageBox>

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

    QMainWindow w;
    auto pW = &w;
    QPushButton* btShowMenu = new QPushButton("Some menu", pW);

    QMenu* menu = new QMenu(pW);

    auto lambdaMessage = [pW]() {
        QMessageBox::information(pW, "Clicked!", "Clicked!");
    };

    for (int i = 0; i < 50; ++i) {
        QAction* ac = menu->addAction("Menu item");
        QObject::connect(ac, &QAction::triggered, lambdaMessage);
    }
    btShowMenu->setMenu(menu);

    w.show();
    return a.exec();
}

Перед нами QPushButton с навешенным на него меню. Меню огромное и не помещается ни сверху, ни снизу. При нажатии мышью на кнопку выскакивает меню. МЫШЬ НАЖАТА. При любом сдвиге, хоть на пиксель, в меню образуется курсор, и если пользователь отпустит мышь, вызывает пункт.

Как разглючить? Реорганизацию меню не предлагать (меню собирается программно).
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы