nodeguy/docs/faq/index.html
2021-07-09 01:03:24 +02:00

54 lines
26 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-alpha.64">
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-145065218-1","auto"),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<link rel="search" type="application/opensearchdescription+xml" title="NodeGui" href="/opensearch.xml"><title data-react-helmet="true">FAQ | NodeGui</title><meta data-react-helmet="true" name="docsearch:version" content="current,latest"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:title" content="FAQ | NodeGui"><meta data-react-helmet="true" name="description" content="Why does installation fail at &quot;Minimal Qt setup&quot;?"><meta data-react-helmet="true" property="og:description" content="Why does installation fail at &quot;Minimal Qt setup&quot;?"><meta data-react-helmet="true" property="og:url" content="https://nodegui.org/docs/faq"><link data-react-helmet="true" rel="shortcut icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="preconnect" href="https://BH4D9OD16A-dsn.algolia.net" crossorigin="true"><link data-react-helmet="true" rel="canonical" href="https://nodegui.org/docs/faq"><link rel="stylesheet" href="/styles.920797bd.css">
<link rel="preload" href="/styles.712c3c28.js" as="script">
<link rel="preload" href="/runtime~main.7293295f.js" as="script">
<link rel="preload" href="/main.d3cdd7c2.js" as="script">
<link rel="preload" href="/1.e2b5b3c1.js" as="script">
<link rel="preload" href="/2.05e94c07.js" as="script">
<link rel="preload" href="/3.ed89e878.js" as="script">
<link rel="preload" href="/1be78505.861d768a.js" as="script">
<link rel="preload" href="/383.3b605302.js" as="script">
<link rel="preload" href="/935f2afb.983952c5.js" as="script">
<link rel="preload" href="/17896441.413cfaf0.js" as="script">
<link rel="preload" href="/0480b142.dbd762c5.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><div aria-label="Navigation bar toggle" class="navbar__toggle" role="button" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 30 30" role="img" focusable="false"><title>Menu</title><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></div><a class="navbar__brand" href="/"><img class="navbar__logo" src="/img/logo-circle.png" alt="NodeGui Logo"><strong class="navbar__title">NodeGui</strong></a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/docs/guides/getting-started">Docs</a><a class="navbar__item navbar__link" href="/docs/api/manual/synopsis">API</a><a class="navbar__item navbar__link" href="/blog">Blog</a><a href="https://github.com/nodegui/nodegui" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub</a><div class="react-toggle react-toggle--disabled displayOnlyInLargeViewport_2aTZ"><div class="react-toggle-track"><div class="react-toggle-track-check"><span class="toggle_BsTx">🌜</span></div><div class="react-toggle-track-x"><span class="toggle_BsTx">🌞</span></div></div><div class="react-toggle-thumb"></div><input type="checkbox" disabled="" aria-label="Dark mode toggle" class="react-toggle-screenreader-only"></div><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span><span class="DocSearch-Button-Key"></span><span class="DocSearch-Button-Key">K</span></button></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div><div class="navbar-sidebar"><div class="navbar-sidebar__brand"><a class="navbar__brand" href="/"><img class="navbar__logo" src="/img/logo-circle.png" alt="NodeGui Logo"><strong class="navbar__title">NodeGui</strong></a></div><div class="navbar-sidebar__items"><div class="menu"><ul class="menu__list"><li class="menu__list-item"><a class="menu__link" href="/docs/guides/getting-started">Docs</a></li><li class="menu__list-item"><a class="menu__link" href="/docs/api/manual/synopsis">API</a></li><li class="menu__list-item"><a class="menu__link" href="/blog">Blog</a></li><li class="menu__list-item"><a href="https://github.com/nodegui/nodegui" target="_blank" rel="noopener noreferrer" class="menu__link">GitHub</a></li></ul></div></div></div></nav><div class="main-wrapper"><div class="docPage_2gpo"><main class="docMainContainer_3EyW"><div class="container padding-vert--lg docItemWrapper_1EkI"><div class="row"><div class="col docItemCol_2ASc"><div class="docItemContainer_3QWW"><article><header><h1 class="docTitle_1Lrw">FAQ</h1></header><div class="markdown"><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="why-does-installation-fail-at-minimal-qt-setup"></a>Why does installation fail at &quot;Minimal Qt setup&quot;?<a aria-hidden="true" tabindex="-1" class="hash-link" href="#why-does-installation-fail-at-minimal-qt-setup" title="Direct link to heading">#</a></h2><p>NodeGui currently relies on the <a href="https://qt.io" target="_blank" rel="noopener noreferrer">Qt framework</a> to acheive cross-platform native interfaces. The library uses a minimal configuration of specific open source Qt components which are downloaded upon installation.</p><p>If the server which hosts the component binaries is down or unavailable, the installation will fail and you might see something along the lines of:</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-sh codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">Minimal Qt 5.14.1 setup:</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">FetchError: request to https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt5_5141/qt.qt5.5141.clang_64/5.14.1-0-202001241000qttools-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z failed, reason: connect ETIMEDOUT 77.86.229.90:443</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at ClientRequest.&lt;anonymous&gt; (.../nodegui/node_modules/node-fetch/lib/index.js:1461:11)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at ClientRequest.emit (events.js:315:20)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at TLSSocket.socketErrorListener (_http_client.js:426:9)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at TLSSocket.emit (events.js:315:20)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at emitErrorNT (internal/streams/destroy.js:92:8)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> at processTicksAndRejections (internal/process/task_queues.js:84:21) {</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> type: &#x27;system&#x27;,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> errno: &#x27;ETIMEDOUT&#x27;,</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"> code: &#x27;ETIMEDOUT&#x27;</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">}</span></div></div></div></div></div><p>In this scenario, you would need to find a mirror (alternate domain) for the binaries which can then be substituted using the <code>QT_LINK_MIRROR</code> environment variable. Let&#x27;s assume we&#x27;ve found an active mirror, for example, <code>https://qt-mirror.dannhauer.de</code>, we can then follow these steps to configure the installation:</p><h4><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="unix--macos"></a><strong>Unix / MacOS</strong><a aria-hidden="true" tabindex="-1" class="hash-link" href="#unix--macos" title="Direct link to heading">#</a></h4><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-sh codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">QT_LINK_MIRROR=https://qt-mirror.dannhauer.de</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm install</span></div></div></div></div></div><h4><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="windows"></a><strong>Windows</strong><a aria-hidden="true" tabindex="-1" class="hash-link" href="#windows" title="Direct link to heading">#</a></h4><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-cmd codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token plain">set QT_LINK_MIRROR=https://qt-mirror.dannhauer.de</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">npm install</span></div></div></div></div></div><p>Now, instead of requesting the resource from</p><p><code>https://download.qt.io/online/...</code></p><p>as in the example above, the script responsible for installing these components would use </p><p><code>https://qt-mirror.dannhauer.de/online/...</code></p><p>If this does not solve your problem, please make sure you have installed all the necessary <a href="/docs/guides/getting-started#developer-environment">requirements</a></p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="why-am-i-having-trouble-installing-qode"></a>Why am I having trouble installing Qode?<a aria-hidden="true" tabindex="-1" class="hash-link" href="#why-am-i-having-trouble-installing-qode" title="Direct link to heading">#</a></h2><p>When running <code>npm install @nodegui/qode</code>, some users occasionally encounter
installation errors.</p><p>In almost all cases, these errors are the result of network problems and not
actual issues with the <code>@nodegui/qode</code> npm package. Errors like <code>ELIFECYCLE</code>,
<code>EAI_AGAIN</code>, <code>ECONNRESET</code>, and <code>ETIMEDOUT</code> are all indications of such
network problems. The best resolution is to try switching networks, or
wait a bit and try installing again.</p><p>You can also attempt to download Qode directly from
<a href="https://github.com/nodegui/qode/releases" target="_blank" rel="noopener noreferrer">nodegui/qode/releases</a>
if installing via <code>npm</code> is failing.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="javascript-widgets-are-missing-methods-and-properties-as-compared-to-qt-widget"></a>Javascript widgets are missing methods and properties as compared to QT widget?<a aria-hidden="true" tabindex="-1" class="hash-link" href="#javascript-widgets-are-missing-methods-and-properties-as-compared-to-qt-widget" title="Direct link to heading">#</a></h2><p>As you would have noticed, the list of methods and properties are less compared to what is present in the Qt&#x27;s corresponding widget class. This is because we havent written wrappers for them yet. You can help add more methods by following the development guide for contributors. Overtime this gap would reduce.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="when-will-qode-upgrade-to-latest-nodejs--qt-version"></a>When will Qode upgrade to latest Node.js / Qt version?<a aria-hidden="true" tabindex="-1" class="hash-link" href="#when-will-qode-upgrade-to-latest-nodejs--qt-version" title="Direct link to heading">#</a></h2><p>When a new version of Node.js/Qt gets released, we usually wait for about a month
before upgrading the one in Qode. So we can avoid getting affected by bugs
introduced in new Node.js/Qt versions, which happens very often.</p><h2><a aria-hidden="true" tabindex="-1" class="anchor enhancedAnchor_2cZh" id="my-apps-windowwidgetstray-disappeared-after-a-few-minutes"></a>My app&#x27;s window/widgets/tray disappeared after a few minutes.<a aria-hidden="true" tabindex="-1" class="hash-link" href="#my-apps-windowwidgetstray-disappeared-after-a-few-minutes" title="Direct link to heading">#</a></h2><p>This happens when the variable which is used to store the window/tray gets
garbage collected.</p><p>If you encounter this problem, the following articles may prove helpful:</p><ul><li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management" target="_blank" rel="noopener noreferrer">Memory Management</a></li><li><a href="https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx" target="_blank" rel="noopener noreferrer">Variable Scope</a></li></ul><p>If you want a quick fix, you can make the variables global by changing your
code from this:</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-javascript codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token maybe-class-name">QWidget</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">require</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;@nodegui/nodegui&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> view </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">QWidget</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">view</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">setObjectName</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;container&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">view</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">setLayout</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">FlexLayout</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span></div></div></div></div></div><p>to this:</p><div class="mdxCodeBlock_1XEh"><div class="codeBlockContent_1u-d"><button type="button" aria-label="Copy code to clipboard" class="copyButton_10dd">Copy</button><div tabindex="0" class="prism-code language-javascript codeBlock_3iAC"><div class="codeBlockLines_b7E3" style="color:#bfc7d5;background-color:#292d3e"><div class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> </span><span class="token maybe-class-name">QWidget</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">require</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;@nodegui/nodegui&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> view </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">QWidget</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">view</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">setObjectName</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token string" style="color:rgb(195, 232, 141)">&quot;container&quot;</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">view</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token method function property-access" style="color:rgb(130, 170, 255)">setLayout</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token keyword" style="font-style:italic">new</span><span class="token plain"> </span><span class="token class-name" style="color:rgb(255, 203, 107)">FlexLayout</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"></span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block">
</span></div><div class="token-line" style="color:#bfc7d5"><span class="token plain">global</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token property-access">view</span><span class="token plain"> </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> view</span><span class="token punctuation" style="color:rgb(199, 146, 234)">;</span><span class="token plain"> </span><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">//prevent GC</span></div></div></div></div></div></div></article><div class="margin-vert--xl"><div class="row"><div class="col"><a href="https://github.com/nodegui/nodegui/edit/master/website/docs/faq.md" target="_blank" rel="noreferrer noopener"><svg fill="currentColor" height="1.2em" width="1.2em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 40 40" style="margin-right:0.3em;vertical-align:sub"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div></div></div><div class="margin-vert--lg"><nav class="pagination-nav" aria-label="Blog list page navigation"><div class="pagination-nav__item"></div><div class="pagination-nav__item pagination-nav__item--next"></div></nav></div></div></div><div class="col col--3"><div class="tableOfContents_3SO_"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-does-installation-fail-at-minimal-qt-setup" class="table-of-contents__link">Why does installation fail at &quot;Minimal Qt setup&quot;?</a></li><li><a href="#why-am-i-having-trouble-installing-qode" class="table-of-contents__link">Why am I having trouble installing Qode?</a></li><li><a href="#javascript-widgets-are-missing-methods-and-properties-as-compared-to-qt-widget" class="table-of-contents__link">Javascript widgets are missing methods and properties as compared to QT widget?</a></li><li><a href="#when-will-qode-upgrade-to-latest-nodejs--qt-version" class="table-of-contents__link">When will Qode upgrade to latest Node.js / Qt version?</a></li><li><a href="#my-apps-windowwidgetstray-disappeared-after-a-few-minutes" class="table-of-contents__link">My app&#39;s window/widgets/tray disappeared after a few minutes.</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container"><div class="row footer__links"><div class="col footer__col"><h4 class="footer__title">Docs</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/docs/guides/getting-started">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/api/manual/synopsis">API</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">Community</h4><ul class="footer__items"><li class="footer__item"><a href="https://spectrum.chat/nodegui" target="_blank" rel="noopener noreferrer" class="footer__link-item">Spectrum</a></li><li class="footer__item"><a href="https://nodegui.slack.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack</a></li><li class="footer__item"><a href="https://twitter.com/node_gui" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a href="https://medium.com/nodegui" target="_blank" rel="noopener noreferrer" class="footer__link-item">Medium</a></li></ul></div><div class="col footer__col"><h4 class="footer__title">More</h4><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a href="https://react.nodegui.org" target="_blank" rel="noopener noreferrer" class="footer__link-item">React NodeGui</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/faq">FAQ</a></li></ul></div></div><div class="text--center"><div>Copyright © 2021 NodeGui</div></div></div></footer></div>
<script src="/styles.712c3c28.js"></script>
<script src="/runtime~main.7293295f.js"></script>
<script src="/main.d3cdd7c2.js"></script>
<script src="/1.e2b5b3c1.js"></script>
<script src="/2.05e94c07.js"></script>
<script src="/3.ed89e878.js"></script>
<script src="/1be78505.861d768a.js"></script>
<script src="/383.3b605302.js"></script>
<script src="/935f2afb.983952c5.js"></script>
<script src="/17896441.413cfaf0.js"></script>
<script src="/0480b142.dbd762c5.js"></script>
</body>
</html>