diff --git a/src/cpp/lib/QtWidgets/QTabBar/qtabbar_wrap.cpp b/src/cpp/lib/QtWidgets/QTabBar/qtabbar_wrap.cpp index 000c562a0..687bae701 100644 --- a/src/cpp/lib/QtWidgets/QTabBar/qtabbar_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QTabBar/qtabbar_wrap.cpp @@ -169,12 +169,18 @@ Napi::Value QTabBarWrap::setTabButton(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); int index = info[0].As().Int32Value(); int position = info[1].As().Int32Value(); - Napi::Object widgetObject = info[2].As(); - NodeWidgetWrap* widgetWrap = - Napi::ObjectWrap::Unwrap(widgetObject); - this->instance->setTabButton(index, - static_cast(position), - widgetWrap->getInternalInstance()); + + if (info[2].IsNull()) { + this->instance->setTabButton( + index, static_cast(position), nullptr); + } else { + Napi::Object widgetObject = info[2].As(); + NodeWidgetWrap* widgetWrap = + Napi::ObjectWrap::Unwrap(widgetObject); + this->instance->setTabButton(index, + static_cast(position), + widgetWrap->getInternalInstance()); + } return env.Null(); } diff --git a/src/lib/QtWidgets/QTabBar.ts b/src/lib/QtWidgets/QTabBar.ts index 67034b1a1..d6862175e 100644 --- a/src/lib/QtWidgets/QTabBar.ts +++ b/src/lib/QtWidgets/QTabBar.ts @@ -10,7 +10,7 @@ import { QPoint } from '../QtCore/QPoint'; import { QRect } from '../QtCore/QRect'; /** - + > Create and control tabbar. * **This class is a JS wrapper around Qt's [QTabBar class](https://doc.qt.io/qt-5/qtabbar.html)** @@ -155,8 +155,8 @@ export class QTabBar extends NodeWidget { removeTab(index: number): void { this.native.removeTab(index); } - setTabButton(index: number, position: ButtonPosition, widget: NodeWidget): void { - this.native.setTabButton(index, position, widget.native); + setTabButton(index: number, position: ButtonPosition, widget: NodeWidget | undefined | null): void { + this.native.setTabButton(index, position, widget == null ? null : widget?.native); } setTabData(index: number, data: QVariant): void { this.native.setTabData(index, data.native);