1. Home
  2. /
  3. Qt-webassembly
  4. /
  5. Qt WebAssembly Counter Example

Qt WebAssembly Counter Example - Qt-webassembly Typing CST Test

Loading…

Qt WebAssembly Counter Example — Qt-webassembly Code

Demonstrates a simple counter layout using Qt Widgets and C++ compiled to WebAssembly for browser interactivity.

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>

int main(int argc, char *argv[]) {
	QApplication app(argc, argv);
	QWidget window;
	window.setWindowTitle("Qt WebAssembly Counter");

	int count = 0;
	QLabel *label = new QLabel(QString("Counter: %1").arg(count));
	QPushButton *btnIncrement = new QPushButton("+");
	QPushButton *btnDecrement = new QPushButton("-");
	QPushButton *btnReset = new QPushButton("Reset");

	QVBoxLayout *layout = new QVBoxLayout;
	layout->addWidget(label);
	layout->addWidget(btnIncrement);
	layout->addWidget(btnDecrement);
	layout->addWidget(btnReset);
	window.setLayout(layout);

	QObject::connect(btnIncrement, &QPushButton::clicked, [&](){
		count++;
		label->setText(QString("Counter: %1").arg(count));
	});

	QObject::connect(btnDecrement, &QPushButton::clicked, [&](){
		count--;
		label->setText(QString("Counter: %1").arg(count));
	});

	QObject::connect(btnReset, &QPushButton::clicked, [&](){
		count = 0;
		label->setText(QString("Counter: %1").arg(count));
	});

	window.show();
	return app.exec();
}

Qt-webassembly Language Guide

Qt for WebAssembly allows developers to build Qt applications that run directly in web browsers using WebAssembly, without the need for plugins. It enables rich, cross-platform GUI apps to execute in modern browsers efficiently.

Primary Use Cases

  • ▸Porting existing Qt desktop apps to web browsers
  • ▸Building interactive web applications with Qt Quick
  • ▸Creating browser-based prototypes without rewriting in JavaScript/HTML
  • ▸Developing cross-platform enterprise GUI apps
  • ▸Deploying games or simulation tools in browsers

Notable Features

  • ▸Full Qt module support (Widgets, QML, Qt Quick, Network, Multimedia)
  • ▸Runs in modern browsers with WebAssembly
  • ▸Seamless integration with Qt build system (qmake/CMake)
  • ▸Access to browser storage and networking APIs
  • ▸Supports audio/video, 2D/3D graphics, and OpenGL/WebGL

Origin & Creator

Qt for WebAssembly was developed by The Qt Company to extend Qt’s cross-platform reach to the browser environment, leveraging WebAssembly technology.

Industrial Note

Qt-WASM is preferred for deploying desktop-quality applications on the web, rapid prototyping of UI-rich apps, and cross-platform enterprise software with shared codebases.

More Qt-webassembly Typing Exercises

Qt WebAssembly Hello WorldQt WebAssembly Button Click ExampleQt WebAssembly Text Input ExampleQt WebAssembly Slider ExampleQt WebAssembly Toggle Button ExampleQt WebAssembly Color Change ExampleQt WebAssembly Checkbox ExampleQt WebAssembly Progress Bar Example

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher