#c #qt #c 11 #qt5
Вопрос:
Я использую лямбда — функцию для открытия окна. Согласно документации, QMenuBar::addAction имеет некоторые перегрузки. Документация
Но в моей программе у меня есть ошибка:
error: C2661: 'QMenuBar::addAction': no overloaded function takes 2 arguments
Это место в моей программе:
ui->setupUi(this);
this->setWindowTitle("Observer_demo");
ui->menuBar->addAction("Select", [amp;]() {
FormChoice* formchoice = new FormChoice;
formchoice->setAttribute(Qt::WA_DeleteOnClose, true);
formchoice->show();
});
Я использую Qt 5.8.0, и мой файл .pro выглядит так:
#-------------------------------------------------
#
# Project created by QtCreator 2021-10-11T12:38:02
#
#-------------------------------------------------
CONFIG = c 11
QT = core gui widgets
greaterThan(QT_MAJOR_VERSION, 4): QT = widgets
TARGET = pqt_observer
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES = QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES = QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES = main.cpp
mainwindow.cpp
formchoice.cpp
informla.cpp
conflicts.cpp
HEADERS = mainwindow.h
formchoice.h
informla.h
conflicts.h
FORMS = mainwindow.ui
formchoice.ui
informla.ui
conflicts.ui
Я не публикую свой код полностью, потому что у моего друга с более ранней версией Qt нет ошибки. Функция принимает как 1, так и 2 и 3 аргумента (согласно документации).
Комментарии:
1. Перегрузка, которую вы ищете, появилась только вQt
5.11 .2. @G. M. боже мой.. посмотрев 5.11, я увидел 5.1.1 . дерьмо случается . Большое спасибо. Вопрос закрыт
3. @Artem.rtv Пожалуйста, не редактируйте свой заголовок, чтобы добавить «ЗАКРЫТЬ» или «РЕШЕНО». Вы можете закрыть его с помощью кнопки Закрыть или удалить, если хотите удалить. Вы также можете добавить свой собственный ответ с объяснением от G. M., если вы чувствуете, что это того стоит.
4. @Холт, мне очень жаль. Где я могу найти кнопку «Закрыть»?
5. @Artem.rtv Внизу вашего вопроса, под тегами, рядом с кнопками редактирования/обмена (если только для этого не требуется минимальная репутация, я не уверен).