X11在任何情况下都显示消息框

问题描述 投票:0回答:2

我想制作一个可以在任何(或至少大多数)基于 X11 的 GUI 系统中运行的程序,无论它是 KDE、Gnome、Xfce 等。 所以,我得出的结论是我必须仅使用 X11 函数来编写它。不幸的是我发现X11不支持UTF-8编码。

我现在想要的就是当我的程序崩溃并且无法使用任何更高级别的 GUI 系统时,以某种方式向最终用户显示一个消息框。

我听说过一些控制台应用程序,例如“zenity”和“kdialog”。但是我不能使用它们,因为 我不能保证它们中的任何一个都可用(例如,我的发行版默认情况下没有安装此类软件)

c++ linux x11
2个回答
0
投票

尝试 https://github.com/Eleobert/MessageBox-X11 这是一个轻量级的消息框项目,仅使用 X11 进行渲染,如果您想避免项目的外部依赖,这非常有用。该功能旨在为您提供灵活性。并且您可以通过更改源代码轻松自定义输出。


0
投票

您的问题有两种可能的解决方案。

通过

Xutf8DrawString
(参见此处此处

如果宏

X_HAVE_UTF8_STRING
不存在,那么您必须将多字节序列转换为两字节序列(可以在here找到示例)并使用XDrawText16XDrawString16绘制字符串。

另请参阅: 核心字体子系统

© www.soinside.com 2019 - 2024. All rights reserved.