이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.
조회 수 4522 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

NodeGui를 사용하면 JavaScript로 데스크톱 응용 프로그램을 만들 수 있다.

NodeGui는 Qt를 사용하여 Window 및 기타 GUI 요소를 생성한다. Qt C++ 위젯의 기능을 Javascript 세계로 가져온다. 따라서 순수하게 Javascript 만을 사용하여 데스크탑 응용 프로그램을 작성할 수 있다는 장점이 있다. (HTML 등의 언어가 필요치 않음) 또한 다른 Javascript 데스크탑 GUI 솔루션에 비해 메모리 및 CPU 효율성이 매우 뛰어나다. NodeGui로 구축된 Hello World 앱은 20MB 대의 메모리에서 실행된다.

nodegui_app.png

 

Hello World

nodegui/nodegui-starter 리포지토리를 사용하여 빠르게 시작해 볼 수 있다.

 

index.ts

import { QMainWindow, QWidget, QLabel, FlexLayout, QPushButton, QIcon, QSize } from '@nodegui/nodegui';
import logo from '../assets/logox200.png';

const win = new QMainWindow();
win.setWindowTitle("Hello World");
win.resize(400, 200)

const centralWidget = new QWidget();
centralWidget.setObjectName("myroot");
const rootLayout = new FlexLayout();
centralWidget.setLayout(rootLayout);

const label = new QLabel();
label.setObjectName("mylabel");
label.setText("Hello");

const button = new QPushButton();
button.resize(100, 150)
button.setIcon(new QIcon(logo));

const label2 = new QLabel();
label2.setText("World");
label2.setInlineStyle(`
  color: red;
`);

rootLayout.addWidget(label);
rootLayout.addWidget(button);
rootLayout.addWidget(label2);
win.setCentralWidget(centralWidget);
win.setStyleSheet(
  `
    #myroot {
      background-color: #009688;
      height: '100%';
      align-items: 'center';
      justify-content: 'center';
    }
    #mylabel {
      font-size: 16px;
      font-weight: bold;
      padding: 1;
    }
  `
);
win.show();

(global as any).win = win;

실행

nodegui_helloworld.png

 

패키징

완성된 앱을 배포하려면 @nodegui/packer를 사용한다.

Hello World 패키징 크기 약 65MB 수준

nodegui_packaging.png

참조:

https://docs.nodegui.org/docs/guides/getting-started/

https://docs.nodegui.org/docs/guides/nodegui-architecture

TAG •

  1. Elastic Stack 에 대해서

    Date2024.08.25 Bymakersweb Views1812
    Read More
  2. Flutter 위젯의 상태관리에 대해서

    Date2023.04.06 Bymakersweb Views2053
    Read More
  3. [NodeGui] JavaScript로 데스크탑 응용프로그램 작성

    Date2023.02.21 Bymakersweb Views4522
    Read More
  4. openFrameworks 한글 폰트 설정 및 출력하기

    Date2023.02.19 Bymakersweb Views1847
    Read More
  5. LVGL 을 통해 GUI 구현 시 한글 폰트 추가

    Date2023.02.07 Bymakersweb Views4323
    Read More
  6. Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제)

    Date2023.01.14 Bymakersweb Views2519
    Read More
  7. NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리

    Date2022.10.10 Bymakersweb Views3265
    Read More
  8. No Image

    OTA 오픈소스 프로젝트

    Date2022.08.03 Bymakersweb Views2311
    Read More
  9. AGL (Automotive Grade Linux) 개요

    Date2022.06.19 Bymakersweb Views4491
    Read More
  10. Chromium과 Ozone 층

    Date2022.03.03 Bymakersweb Views2564
    Read More
  11. Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제

    Date2022.01.06 Bymakersweb Views5243
    Read More
  12. CopperSpice 에 대해서 (C++ Gui 라이브러리)

    Date2022.01.02 Bymakersweb Views2617
    Read More
  13. Flutter/Dart 와 Qt/QML 비교

    Date2021.11.07 Bymakersweb Views3299
    Read More
  14. VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성

    Date2021.09.12 Bymakersweb Views2728
    Read More
  15. ZeroMQ 를 이용한 Qt 응용프로그램 간 통신

    Date2021.08.28 Bymakersweb Views2548
    Read More
  16. C++를 위한 Lottie 라이브러리 with SDL2

    Date2021.08.15 Bymakersweb Views3026
    Read More
  17. CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션

    Date2021.03.09 Bymakersweb Views3796
    Read More
  18. Protocol Buffers 를 이용한 직렬화 with Conan Package Manager

    Date2021.02.24 Bymakersweb Views1955
    Read More
  19. 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램

    Date2021.01.31 Bymakersweb Views2699
    Read More
  20. Nana, C++용 크로스플랫폼 GUI 라이브러리

    Date2021.01.06 Bymakersweb Views4142
    Read More
Board Pagination Prev 1 2 Next
/ 2