c++ - 如何解决“C2660 'SWidget::Construct':函数不接受 1 个参数”?
问题描述
我该如何解决
C2660 'SWidget::Construct':函数不接受 1 个参数
我正在尝试放置一个显示游戏控件的小部件。
我是虚幻引擎的新手。
错误
C2660 'SWidget::Construct':函数不接受 1 个参数
C:\Program Files\Epic Games\ UE_4.26 \Engine\Source\Runtime\SlateCore\Public\Widgets\ DeclarativeSyntaxSupport.h 862
SPanelWidget.h
#pragma once
#include "SlateBasics.h"
#include "SlateExtras.h"
class SPanelWidget : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SPanelWidget) {}
SLATE_ARGUMENT(TWeakObjectPtr<class AControlPanel>, OwningPanel)
SLATE_END_ARGS()
void construct(const FArguments& InArgs);
TWeakObjectPtr<class AControlPanel> OwningPanel;
virtual bool SupportsKeyboardFocus() const override {return true;};
};
SPanelWidget.cpp
#include "SPanelWidget.h"
#define LOCTEXT_NAMESPACE "Panel"
void SPanelWidget::construct(const FArguments& InArgs) {
const FText TitleText = LOCTEXT("ProjectTitle","Chair Table Practice Problem");
const FMargin ContentPadding = FMargin(500.f,300.f);
ChildSlot [
SNew(SOverlay)
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill) [
SNew(SImage)
.ColorAndOpacity(FColor::Black)
]
+ SOverlay::Slot()
.HAlign(HAlign_Fill)
.VAlign(VAlign_Fill)
.Padding(ContentPadding) [
SNew(SVerticalBox)
+SVerticalBox::Slot() [
SNew(STextBlock)
.Text(TitleText)
]
]
];
}
#undef LOCTEXT_NAMESPACE
解决方案
需要用大写的 'C'声明Construct函数。
信用: slodginald
推荐阅读
- html - 如何使用 flexbox 填充容器的剩余高度?
- gulp - 如何结合@@include中传递的上下文和参数?
- vue.js - 如何在 vue.js 中构建由 npm run build 命令动态获取的图像?
- php - 奇怪的日期格式
- validation - 如果 webhook 中的查询参数中存在非英语字符/表情符号,则 Twilio webhook 验证失败
- javascript - 在 Strapi 中提供没有哈希的文件
- excel - 即使 Excel 语言设置为阿拉伯语,VBA 也无法设置 RightToLeft
- php - 如何将我的下拉值传递给 CodeIgniter 控制器?
- gitlab - 如何将 Gitlab 页面映射到端口?
- c# - 如何检查一个 int 是否可以被另一个 int 整除?使用c#,以下指定条件