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

xqkwcwgp  于 2023-11-17  发布在  Linux
关注(0)|答案(2)|浏览(107)

我想做一个程序,将运行在任何(或至少大部分)基于X11的GUI系统,无论是KDE,Gnome,Xfce等,所以,我得出结论,我必须写它只使用X11函数。不幸的是,我发现X11不支持UTF-8编码。
我现在想要的是,当我的程序崩溃并且无法使用任何更高级别的GUI系统时,以某种方式向最终用户显示一个消息框。
我听说过一些控制台应用程序,比如“zenity”和“kdialog”,但是我不能使用它们,因为我不能保证它们中的任何一个都可用(我的发行版,例如,默认情况下没有安装这样的软件)

kpbwa7wx

kpbwa7wx1#

你的问题有两种可能的解决方案。
经由
Xutf8DrawString(参见herehere
或者如果宏X_HAVE_UTF8_STRING不存在,那么你必须将多字节序列转换为两字节序列(例如here),并使用XDrawText16或XDrawString16绘制字符串。

**参见:**核心字体子系统

t0ybt7op

t0ybt7op2#

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

相关问题