Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/DimaRU/qlift6

Swift API for Qt6
https://github.com/DimaRU/qlift6

Last synced: 13 days ago
JSON representation

Swift API for Qt6

Awesome Lists containing this project

README

        

# Qlift
## Swift API for Qt6

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Longhanks/qlift-swift-example/master/LICENSE)

![Mac OS](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=macos&logoColor=F0F0F0)
![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)

This package provides:

- A Swift package that wraps Qt6 to a swifty API.

An executable called `qlift-uic`, that can be used in a similiar fashion to Qt's uic: generate Swift code from Qt user interface files (.ui), moved to separate repository: [https://github.com/DimaRU/QliftUIC](https://github.com/DimaRU/QliftUIC)

#### Tested under:
- macOS (Intel & Apple Silicon)
- Linux (both Intel x64 & Arm64)
- Windows 10

## Building

Qt6 must be installed. On macOS, use `brew install qt`. On Linux, `pkgconfig` is used to find the build flags. On macOS, `.pc` files also is used to find Qt frameworks and build flags. Use Xcode from 13.3 for build macOS applications.
For macOS, add next line to `.zprofile`:

```bash
launchctl setenv PKG_CONFIG_PATH /opt/homebrew/opt/qt/lib/pkgconfig
```
on Apple Silicon Mac or

```bash
launchctl setenv PKG_CONFIG_PATH /usr/local/opt/qt/lib/pkgconfig
```
on Intel Mac or Apple Silicon Mac for develop under Rosetta

### swiftpm

`swift build`

### Xcode

Add `https://github.com/DimaRU/qlift.git` to Package Dependencies list

### Examples

- [swiftmine](https://github.com/Longhanks/swiftmine "swiftmine"): Minesweeper in Swift

## Note

This Qt wrapper have incomplete implementation, most of the Qt classes are not implemented. Also, support for already implemented Qt classes may be incomplete.