[LINUX虚拟机]QT添加Log4qt动态库

一、下载Log4qt源文件

网盘地址:密码1234,这里可能不是最新版本,可以去GitHub找一下最新版本

二、解压并编译

我这里虚拟机用的Ubuntu 64位 - VMware,qt版本是5.12.9,解压Log4qt后用qt打开,编译器选择默认的GCC编译就行,如下

运行的话选择basic2,release版,然后点击构建得到一个新的文件夹:

从这个文件夹里挑出我们需要的文件:bin里面所有文件

除此以外还需要之前下载的压缩包解压后的文件夹里面的一些头文件:

这个目录下所有的".h"头文件,将这些头文件复制到一个新的文件夹中并命名为include:

<think>嗯,用户在使用MobaXterm连接Linux虚拟机运行Qt程序时,遇到了WA_TranslucentBackground属性不生效的问题。我需要帮他们解决这个问题。首先,得了解这个属性的作用。WA_TranslucentBackground用于设置窗口半透明,可能需要特定的图形后端支持,比如X11或Wayland。 然后,用户用的是MobaXterm,它通常通过X11转发来显示图形界面。但X11转发有时候不支持某些高级图形特性,比如透明效果。可能的原因有几个:X11转发配置问题、Qt的图形后端设置不正确,或者虚拟机环境缺少必要的库。 接下来,我得想解决方案。首先检查X11转发是否正常,确保DISPLAY变量设置正确。然后,确认Qt使用的是xcb平台插件,因为X11环境下可能需要这个。用户可以通过命令行参数指定平台插件,比如加上-platform xcb。 另外,虚拟机的图形加速是否开启也可能影响。比如在VirtualBox中,需要启用3D加速,并安装增强功能。还有,检查是否缺少OpenGL相关的库,比如mesa-utils或libgl1-mesa-dev,这些可能影响图形渲染。 如果这些步骤都没解决,可能需要强制Qt使用软件渲染,加上-opengl software参数。或者尝试其他远程连接工具,比如VNC,看看是否能绕过X11的限制。 最后,用户可能需要查阅Qt文档中关于透明窗口的注意事项,确保代码正确,比如设置了正确的窗口标志和调用了必要的重绘函数。综合这些步骤,应该能逐步排查问题所在,找到合适的解决办法。</think>### MobaXterm连接Linux虚拟机Qt程序WA_TranslucentBackground属性未生效的解决方案 #### 问题分析 `WA_TranslucentBackground`是Qt的窗口属性,用于实现半透明背景效果,其依赖图形后端的支持(如X11或Wayland)。在远程连接场景下,可能因以下原因导致失效: 1. **X11转发限制**:MobaXterm默认使用X11转发图形界面,但部分X11配置可能不支持透明效果[^1] 2. **Qt平台插件不匹配**:未正确指定图形后端(如xcb插件) 3. **虚拟机环境缺失**:缺少OpenGL支持或图形驱动 #### 逐步解决方案 1. **验证X11转发状态** ```bash echo $DISPLAY # 应返回类似 localhost:10.0 xeyes & # 测试X11图形程序是否正常显示 ``` 若无法显示xeyes,需检查MobaXterm设置: - 启用X11转发:Settings > Configuration > X11 > [√] X11 forwarding 2. **指定Qt平台插件** 运行程序时强制使用xcb后端: ```bash ./your_qt_program -platform xcb ``` 若提示缺少插件,需安装依赖: ```bash sudo apt-get install libxcb-xinerama0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 ``` 3. **启用虚拟机的3D加速(以VirtualBox为例)** - 虚拟机设置 > 显示 > 启用3D加速 - 安装增强功能: ```bash sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils ``` 4. **检查OpenGL支持** ```bash glxinfo | grep "OpenGL version" # 确认驱动已加载 sudo apt-get install mesa-utils libgl1-mesa-dev # 安装缺失的OpenGL组件 ``` 5. **代码层面验证** ```cpp // 必须同时设置窗口标志 setAttribute(Qt::WA_TranslucentBackground); setWindowFlags(windowFlags() | Qt::FramelessWindowHint); update(); // 强制重绘 ``` 6. **备选方案:使用软件渲染** ```bash ./your_qt_program -platform xcb -opengl software ``` #### 补充建议 - 通过VNC连接验证效果(如TigerVNC) - 检查Qt编译配置是否包含`-opengl desktop`选项 - 查看X11日志定位问题: ```bash grep -i "x11" /var/log/Xorg.0.log ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值