我试图在QT中制作一个垂直菜单(我是新手,所以请耐心等待)。 我试图将sidebar.h中的addFunction函数附加到qwidget。任何帮助将不胜感激
错误
D:\Projects\mainwindow.cpp:13: error: no matching function for call to 'QWidget::addAction(QIcon, QString)'
ui->widget->addAction(QIcon(QString(":/icons/icon%1").arg(i)) , QString("Action %1").arg(i));
^
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "sidebar.h"
#
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
for(int i= 0; i < 6; ++i)
{
ui->widget->SideBar::addAction(QIcon(QString(":/icons/icon%1").arg(i)) , QString("Action %1").arg(i));
}
}
MainWindow::~MainWindow()
{
delete ui;
}
sidebar.cpp
QAction *SideBar::addAction(const QString &text, const QIcon &icon)
{
QAction *action = new QAction(icon, text, this);
action->setCheckable(true);
mActions.push_back(action);
update();
return action;
}
答案 0 :(得分:0)
在错误消息中,我看到尝试调用QWidget::addAction(QIcon, QString)
。根据Qt文档,这种方法并没有超越;只有1个}}。请尝试以下内容:
QWidget::addAction(QAction *)
答案 1 :(得分:0)
您的文字和图标参数的顺序相反:
ui->widget->SideBar::addAction(QIcon(...) , QString(...).arg(i));
和
QAction* SideBar::addAction(const QString &text, const QIcon &icon)