Rviz2界面可以放大吗,字体好小
-
-
@sxjj 自己已摸索+ai解决
参考https://blog.csdn.net/skysafari/article/details/131070710



-
@sxjj 如果有问题或者有什么不好的地方,请大佬指正,感谢

-
在看方法之前,我需要提醒,此方法需要下载VcXsrv,不难下,也很好操作,就是以后你要用rviz2等gui工具得先开VcXsrv。
VcXsrv本质是为了能让windows用户也就是用wsl来操作Linux系统的图形界面应用程序,ros2中Gui是用Qt开发的,所以你用VcXsrv,以后那些gui工具就得在VcXsrv支持下(不知道对不对,也不知道是不是有解决方案)
在这里只是对此问题提出一种可行方案(其实你可以用虚拟机学习,或者要长期与linux打交道直接去装双系统,用了wsl的便捷自然是要还债的,个人理解),如果有其他方案希望大佬指点一二,本人只是机械专业。为了让VcXsrv在关闭下也能运行rqt,rviz2等,我去问了ai,也修修改改,结果也没达到我的最终期望:让rqt等能在VcXsrv在关闭/开启下丝滑切换。
现在底下这行代码的作用是,你不开VcXsrv也能运行rviz2等,但是字体的话就还是很小,如果你开启VcXsrv那么字体会变大(默认,我不知道字体好不好调,如果你直接改rviz字体大小可能会遇见花屏,不过也不用担心,改回来就行)。
这里建议不要去,VcXsrv关闭打开rviz2,又打开VcXsrv,重新运行rviz2。是可以的,但是你每次切换VcXsrv或WSLg(也就是VcXsrv关闭)都要source ~/.bashrc!!!
忙活了半天,我其实希望不用source ~/.bashrc也能丝滑切换,可惜ai代码总有些大大小小问题,解决了这个又那个
。但是想想也是,我纯找乐子了,谁会打开又关掉啊。function setup_display() {
local ip=$(ip route show default | awk '{print $3}')if timeout 0.1 nc -z "$ip" 6000 2>/dev/null; then export DISPLAY="$ip:0" export GUI_MODE="vcxsrv" echo "✓ GUI 模式: VcXsrv ($DISPLAY)" elif [ -e "/mnt/wslg/.X11-unix/X0" ]; then export DISPLAY=:0 export GUI_MODE="wslg" echo "✓ GUI 模式: WSLg" else export DISPLAY=:0 # 设置默认值,但可能无效 export GUI_MODE="none" echo "⚠️ GUI 模式: 无显示服务器" fi}
setup_display
function gui() {
local program="$1"
shift# 如果当前模式是 none,尝试重新检测 if [ "$GUI_MODE" = "none" ]; then setup_display fi if [ -n "$DISPLAY" ] && [ "$DISPLAY" != ":0" ] && [ "$GUI_MODE" != "none" ]; then echo "启动: $program (使用: $GUI_MODE)" command "$program" "$@" # 不需要再设置 DISPLAY,环境已有 else echo "错误: 无法启动 GUI 程序" echo "当前模式: $GUI_MODE, DISPLAY: ${DISPLAY:-未设置}" echo "请运行 'refresh_display' 或启动 VcXsrv" return 1 fi}
alias refresh_display='setup_display'
粘在最后即可
-
def generate_launch_description():
# 添加环境变量 然后rviz2的界面就变大了
env_var = launch.actions.SetEnvironmentVariable(
'QT_FONT_DPI',
'196' # 这个值可以自己修改
)
"""
其他动作
"""# 返回值的类型也是固定的 return launch.LaunchDescription([ # action动作 """ 其他动作 """, env_var ])