From 5f2bc51bbcdbb344ca196ef27ac8b31cbc69f14e Mon Sep 17 00:00:00 2001 From: Singha360 <35334787+Singha360@users.noreply.github.com> Date: Sun, 19 Apr 2020 04:07:40 -0400 Subject: [PATCH] Added method to set column width to QTreeWidget (#523) * Fixed slight error in dependencies installation command (Ubuntu) * Implemented setColumnWidth method for QTreeWidget * Added an example of using setColumnWidth method * Fixed doc error for setColumnWidth method. --- .../QtWidgets/QTreeWidget/qtreewidget_wrap.h | 1 + .../QtWidgets/QTreeWidget/qtreewidget_wrap.cpp | 18 ++++++++++++++---- src/demo.ts | 4 +++- src/lib/QtWidgets/QTreeWidget.ts | 9 +++++++++ website/docs/development/setting-up.md | 2 +- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/cpp/include/nodegui/QtWidgets/QTreeWidget/qtreewidget_wrap.h b/src/cpp/include/nodegui/QtWidgets/QTreeWidget/qtreewidget_wrap.h index 000f410fc..a94b9214f 100644 --- a/src/cpp/include/nodegui/QtWidgets/QTreeWidget/qtreewidget_wrap.h +++ b/src/cpp/include/nodegui/QtWidgets/QTreeWidget/qtreewidget_wrap.h @@ -31,6 +31,7 @@ class DLL_EXPORT QTreeWidgetWrap : public Napi::ObjectWrap { Napi::Value insertTopLevelItems(const Napi::CallbackInfo &info); Napi::Value selectedItems(const Napi::CallbackInfo &info); Napi::Value setColumnCount(const Napi::CallbackInfo &info); + Napi::Value setColumnWidth(const Napi::CallbackInfo &info); Napi::Value setHeaderLabel(const Napi::CallbackInfo &info); Napi::Value setHeaderLabels(const Napi::CallbackInfo &info); Napi::Value setItemWidget(const Napi::CallbackInfo &info); diff --git a/src/cpp/lib/QtWidgets/QTreeWidget/qtreewidget_wrap.cpp b/src/cpp/lib/QtWidgets/QTreeWidget/qtreewidget_wrap.cpp index 9eabb9e28..7656ebcaf 100644 --- a/src/cpp/lib/QtWidgets/QTreeWidget/qtreewidget_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QTreeWidget/qtreewidget_wrap.cpp @@ -15,12 +15,11 @@ Napi::Object QTreeWidgetWrap::init(Napi::Env env, Napi::Object exports) { env, CLASSNAME, {InstanceMethod("addTopLevelItem", &QTreeWidgetWrap::addTopLevelItem), InstanceMethod("addTopLevelItems", &QTreeWidgetWrap::addTopLevelItems), - InstanceMethod("insertTopLevelItem", - &QTreeWidgetWrap::insertTopLevelItem), - InstanceMethod("insertTopLevelItems", - &QTreeWidgetWrap::insertTopLevelItems), + InstanceMethod("insertTopLevelItem",&QTreeWidgetWrap::insertTopLevelItem), + InstanceMethod("insertTopLevelItems", &QTreeWidgetWrap::insertTopLevelItems), InstanceMethod("selectedItems", &QTreeWidgetWrap::selectedItems), InstanceMethod("setColumnCount", &QTreeWidgetWrap::setColumnCount), + InstanceMethod("setColumnWidth", &QTreeWidgetWrap::setColumnWidth), InstanceMethod("setHeaderLabel", &QTreeWidgetWrap::setHeaderLabel), InstanceMethod("setHeaderLabels", &QTreeWidgetWrap::setHeaderLabels), InstanceMethod("setItemWidget", &QTreeWidgetWrap::setItemWidget), @@ -153,6 +152,17 @@ Napi::Value QTreeWidgetWrap::setColumnCount(const Napi::CallbackInfo& info) { return env.Null(); } +Napi::Value QTreeWidgetWrap::setColumnWidth(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::HandleScope scope(env); + + int columns = info[0].As().Int32Value(); + int width = info[1].As().Int32Value(); + this->instance->setColumnWidth(columns, width); + + return env.Null(); +} + Napi::Value QTreeWidgetWrap::setHeaderLabel(const Napi::CallbackInfo& info) { Napi::Env env = info.Env(); Napi::HandleScope scope(env); diff --git a/src/demo.ts b/src/demo.ts index c1dc427b0..f87c80b4b 100644 --- a/src/demo.ts +++ b/src/demo.ts @@ -5,9 +5,11 @@ import { DateFormat } from './lib/QtEnums'; const { QMainWindow, QTreeWidgetItem, QTreeWidget, QDate, ItemDataRole, QDateTime } = require('./index'); const win = new QMainWindow(); +win.resize(500, 500); const tree = new QTreeWidget(); tree.setSortingEnabled(true); -tree.setHeaderLabels(['Date', 'Time']); +tree.setHeaderLabels(['Date', 'Time', 'Test Column']); +tree.setColumnWidth(1, 15); //Sets the size of the selected column (index, size). const dates = [ '11/22/1973 02:55:43 AM', diff --git a/src/lib/QtWidgets/QTreeWidget.ts b/src/lib/QtWidgets/QTreeWidget.ts index 4b63203d7..4eb5e5d5a 100644 --- a/src/lib/QtWidgets/QTreeWidget.ts +++ b/src/lib/QtWidgets/QTreeWidget.ts @@ -115,6 +115,15 @@ export class QTreeWidget extends QAbstractScrollArea { this.native.setColumnCount(columnCount); } + /** + * Sets the width of column of this QTreeWidget. + * @param column The column index. + * @param width The size of the columns. + */ + setColumnWidth(column: number, width: number): void { + this.native.setColumnWidth(column, width); + } + /** * Sets the header label. * @param label The header label. diff --git a/website/docs/development/setting-up.md b/website/docs/development/setting-up.md index 6b98587ef..f3a9f69cd 100644 --- a/website/docs/development/setting-up.md +++ b/website/docs/development/setting-up.md @@ -34,7 +34,7 @@ Supported versions: Ubuntu 17.10 and up 3. Make, GCC v7, pkg-config 4. Qt (_Optional_): Make sure you followed the setup instructions from [Qode][qode_setup] -On Ubuntu: `$ sudo apt-get install pkg-config build-essentials` should install everything except Qt5. +On Ubuntu: `$ sudo apt-get install pkg-config build-essential` should install everything except Qt5. Note: If you are using your own version of Qt make sure to