如何将不在 QT 全局范围内的函数附加到 Qwidget 上
How to attach functions to Qwidget which are not in global scope in QT
我正在尝试在QT中制作垂直菜单(我是新手,所以请耐心等待(。 我正在尝试将 addFunction 函数从侧边栏.h 附加到 qwidget。任何帮助将不胜感激
错误
D:Projectsmainwindow.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));
^
主窗口.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;
}
侧边栏.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;
}
在错误消息中,我看到尝试调用QWidget::addAction(QIcon, QString)
。根据Qt文档,这种方法不存在;只有QWidget::addAction(QAction *)
.请尝试以下操作:
ui->widget->SideBar::addAction( new QAction( QIcon(QString(":/icons/icon%1").arg(i)) , QString("Action %1").arg(i)) );
文本和图标参数的顺序相反:
ui->widget->SideBar::addAction(QIcon(...) , QString(...).arg(i));
和
QAction* SideBar::addAction(const QString &text, const QIcon &icon)
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何将不在 QT 全局范围内的函数附加到 Qwidget 上
- 调用 setVisible(false) 在 QWidget 的构造函数中不起作用
- 不能声明Qwidget,因为虚拟函数是纯粹的
- 带有 QWidget 的分段错误构造函数.Qt/C++
- 将字符串(或任何其他参数)传递到QWidget构造函数
- 扩展 QWidget 上的 Qt/C++ 调用函数
- QWidget winId在从构造函数调用时崩溃
- 在Qt创建者中推广QWidget,构造函数存在问题
- 如何在qwidget显示()之前调用函数?
- 为什么QWidget的析构函数不是虚拟的?
- 有没有一种方法可以反转QWidget::setMask()函数或实现类似的效果
- 在何处保存 QWidget 动画的状态以在 QStyle 绘制函数中使用