提问人:Felix.leg 提问时间:11/15/2023 最后编辑:genpfaultFelix.leg 更新时间:11/16/2023 访问量:75
在任何情况下在 X11 中显示消息框
Showing a message box in X11 under any circumstances
问:
我想做一个可以在任何(或至少大多数)基于 X11 的 GUI 系统中运行的程序,无论是 KDE、Gnome、Xfce 等。 因此,我得出结论,我必须仅使用 X11 函数编写它。不幸的是,我发现 X11 不支持 UTF-8 编码。
我现在想要的只是当我的程序崩溃并且无法使用任何更高级别的 GUI 系统时,以某种方式向最终用户显示一个消息框。
我听说过一些控制台应用程序,例如“zenity”和“kdialog”。但是我不能使用它们,因为 我不能保证它们中的任何一个都可用(例如,我的发行版默认情况下没有安装此类软件)
答:
0赞
Bart McEndree
11/15/2023
#1
try https://github.com/Eleobert/MessageBox-X11 这是一个轻量级的消息框项目,仅使用 X11 进行渲染,如果您想避免对项目的外部依赖,这将非常有用。该功能旨在为您提供灵活性。您可以通过更改源代码轻松自定义输出。
评论
0赞
Felix.leg
11/15/2023
我也发现了,但这个项目使用 s。我的应用程序有正常的 swchar
char
0赞
n. m. could be an AI
11/16/2023
@Felix.leg 如果您不知道如何将字符串转换为字符串,您可能应该学习如何做到这一点。char
wchar_t
1赞
Erdal Küçük
11/16/2023
#2
您的问题有两种可能的解决方案。
要么通过
或者,如果宏不存在,则必须将多字节序列转换为双字节序列(示例可在此处找到),并使用 XDrawText16 或 XDrawString16 绘制字符串。X_HAVE_UTF8_STRING
另请参阅:Core Font 子系统
评论
0赞
Felix.leg
11/16/2023
感谢您的回答!最终我发现了 Xft 扩展,但您的回答让我走上了成功代码的正确轨道。
评论