从 Windows 到鸿蒙:一个 C++ DirectUI 框架是怎么吃下五个平台的 当”自主可控”从口号变成刚需,一个老问题再次摆在国内 C++ 客户端团队面前:我们的界面代码,能不能也跑在鸿蒙上?一、为什么是现在鸿蒙(HarmonyOS / OHOS)的本体语言是 ArkTS,UI 体系…
阅读全文 »
SOUI是一个基于C++的轻量级GUI开发框架,支持Windows、Linux、MacOS平台,后续也将支持更多平台。它提供了丰富的UI组件和高效的渲染引擎,帮助开发者快速构建美观、高性能的桌面应用程序。
一套代码,多平台运行。支持Windows、Linux、MacOS平台。现有基于SOUI开发的Windows下的软件,最快10分钟就可以支持linux,macOS。
优化的渲染引擎确保UI流畅运行,即使在低配置设备上也能提供良好的用户体验,可以选择gdi也可以选择Skia。
功能模块采用插件式设计,按需装配:最小配置编译后体积可以<2M。
提供按钮、列表、树形控件、表格等常用UI组件,满足大多数应用开发需求。丰富的虚表支持,解决大量数据展示性能问题。
支持XML定义UI布局,实现界面与逻辑分离,便于维护和修改。支持多种布局模式:线性布局,相对布局,网格布局等,轻松解决布局问题。
所有代码全部开源,包含SOUI核心代码及所有组件;也包括SOUI的跨平台支持模块SwinX,所有代码尽在掌控。
以下作品均由 SOUI 团队完全自主研发,展示了 SOUI 框架在不同应用场景下的强大能力和灵活性。
以下是一些使用SOUI开发的实际应用案例,展示了框架的强大功能和灵活性。
基于SOUI开发的界面效果非常炫的游戏加速器,具有精美的UI界面和流畅的动画效果。除迅游,还有很多游戏加速器都选择使用SOUI作为UI引擎
深受用户喜爱的视频播放器,同样具有精美的UI界面和流畅的动画效果,和视频播放完美结合。
使用SOUI开发的百度网盘,SOUI支持起百度网盘的各种复杂交互。
SOUI可通过以下方式获取:
以下是一个简单的SOUI应用程序示例:
#include "souistd.h"
class CMainDlg : public SOUI::SHostDialog {
public:
CMainDlg() : SHostDialog(_T("LAYOUT:XML_MAINWND")) {}
void OnClick() {
SOUI::SMessageBox(NULL, _T("Hello SOUI!"), _T("Greeting"), MB_OK);
}
EVENT_MAP_BEGIN()
EVENT_ID_COMMAND(1, OnClick) // 按钮ID为1时触发OnClick
EVENT_MAP_END()
};
int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE, LPTSTR lpCmdLine, int nShowCmd) {
SOUI::SApplication *theApp = new SOUI::SApplication(hInst);
... //config app
... //init soui resource
{
CMainDlg dlgMain;
dlgMain.DoModal();
}
delete theApp;
return 0;
}
了解SOUI的最新开发动态、技术解析和最佳实践。
从 Windows 到鸿蒙:一个 C++ DirectUI 框架是怎么吃下五个平台的 当”自主可控”从口号变成刚需,一个老问题再次摆在国内 C++ 客户端团队面前:我们的界面代码,能不能也跑在鸿蒙上?一、为什么是现在鸿蒙(HarmonyOS / OHOS)的本体语言是 ArkTS,UI 体系…
阅读全文 »SOUI5:全网首款全平台原生兼容的 C++ GUI 框架——一套代码终结多端多团队维护噩梦 你的 App 是否还在 iOS、Android 各养一个团队、各维护一套代码?逻辑对不齐、bug 翻倍、功能上线永远不同步?本文介绍全网第一款覆盖 Win/Linux/macOS/Android/iOS 五大…
阅读全文 »一套 C++ 代码,桌面与移动端通吃:SOUI for Android 实战移植中国象棋 我最近把一个原本运行在 Windows、Linux、macOS 桌面端的中国象棋联网游戏,使用 SOUI for Android 移植到了 Android 平台。整个移植过程几乎没有改动业务代码,C++ 主窗口类、游戏逻…
阅读全文 »SOUI for Android:一套 C++ 代码,实现真正的跨平台 UI 本文介绍 SOUI 框架的 Android 适配方案,展示如何用 C++ 开发高性能、安全、跨平台的移动应用,同时与 Android 原生系统无缝集成。🔥 为什么选择 SOUI for Android?在移动开发领域,跨平台方案层…
阅读全文 »XPlayer:SOUI5+SDL3打造的高性能跨平台视频播放器在桌面应用开发领域,跨平台一直是一个令人头疼的问题。特别是对于Windows平台的开发者来说,想要将应用移植到Linux平台,往往需要重写大量代码。今天我要介绍的XPlayer项目,采用SOUI5+SWINX这套跨平台框…
阅读全文 »XMusic:我用 C++ 写了一个内存仅 10MB 的跨平台音乐播放器写在前面:这是一个纯 C/C++ 实现的开源音乐播放器项目,零依赖、单文件发布,空载内存占用仅约 10MB。如果你厌倦了 Electron 应用的臃肿,或者对 C++ GUI 开发感兴趣,这篇文章或许能给你一些启发…
阅读全文 »【SOUI 布局之FrameLayout】:打造专业级界面布局引言你是否曾经为复杂界面的布局而烦恼?是否羡慕过 IDE 那样的专业界面布局?今天,我要向大家介绍 SOUI 框架中的一个新的布局——FrameLayout,它能让你轻松实现类似 MFC CFrameWnd 的停靠布局效果,而且…
阅读全文 »为什么桌面UI开发还在用PNG?SOUI的SVG方案才是未来在高分屏时代,传统位图资源已经难以满足现代UI开发的需求。作为一名桌面应用开发者,你是否也遇到过这些问题:为了适配不同DPI,需要准备多套资源,包体积越来越大位图缩放后模糊不清,用户体验大打折扣…
阅读全文 »前言:作为 swinx的作者,今天和大家分享一下内核对象在这个跨平台层的设计思路。在 Linux 上模拟 Windows API 不难,但模拟得既高效又优雅就不容易了。今天带大家深入 swinx的源码,看看一个”非主流”但异常实用的技术方案——用 select+pipe 实现 WaitFo…
阅读全文 »一句话总结:用 Windows 的资源管理方式,在 Linux/macOS 上实现单文件发布,这才是真正的跨平台开发体验。先说说痛点做过跨平台 GUI 开发的同学都知道,资源管理是个让人头疼的问题:Windows:用 .rc 资源文件,编译进 exe,单文件发布美滋滋Linux/macOS:…
阅读全文 »加入我们的社区,获取帮助和分享经验: