You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决UE4开发中“SWidget::Construct不接受1个参数”的C2660编译错误

错误原因

你出现C2660编译错误的核心原因是Slate控件构造函数的名称大小写不匹配:
Unreal Slate框架要求自定义SWidget子类的构造方法必须命名为大写C开头的Construct,你在头文件声明、cpp实现中写的都是小写c开头的construct,属于拼写错误,没有正确重载父类的构造方法,导致Slate的声明式语法宏找不到匹配的1参数构造函数,触发报错。

修复步骤

  1. 修改SPanelWidget.h中的构造函数声明,将小写开头的construct改为大写开头的Construct:
#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()

    // 修正为大写C开头的Construct
    void Construct(const FArguments& InArgs);

    TWeakObjectPtr<class AControlPanel> OwningPanel;

    virtual bool SupportsKeyboardFocus() const override {return true;};

};
  1. 修改SPanelWidget.cpp中的构造函数实现,同步修改函数名,同时补充对SLATE_ARGUMENT传入参数的赋值逻辑,避免后续使用OwningPanel时为空:
#include "SPanelWidget.h"

#define LOCTEXT_NAMESPACE "Panel"

// 修正为大写C开头的Construct
void SPanelWidget::Construct(const FArguments& InArgs) {
    // 补充参数赋值逻辑
    OwningPanel = InArgs._OwningPanel;
    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
  1. 修改完成后,右键项目.uproject文件选择「Generate Visual Studio project files」重新生成项目文件,再重新编译项目即可解决报错。

内容的提问来源于stack exchange,提问作者Supreeto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:06:07