通过Xinit 启动的Qt程序,鼠标有时候变为“X”
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
通过Xinit 启动的Qt程序,鼠标有时候变为“X”
如题,题主在开发一款运行在Ubuntu上面的软件,使用Qt5开发,开机启动终端后使用xinit 启动我自己的qt程序,现在的问题是,我程序用着用着,有时候鼠标就变成了一个“X”(原始X Window的那个样式),请教一下前辈们有没有遇到过类似的情况,如果有的话,还请不吝赐教。
- vickycq
- 帖子: 4507
- 注册时间: 2011-03-20 13:12
- 系统: Debian
- 来自: 山东省寿光县
- 联系:
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?药师9528 写了:有时候鼠标就变成了一个“X”
有没有使用窗口管理器?
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
欢迎所有 Debian GNU/Linux 用户
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
就在我自己的那个 Qt 程序里,鼠标由正常的样子,变成了 X window 默认的那个 “X”,没有开其他的程序。vickycq 写了:是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?药师9528 写了:有时候鼠标就变成了一个“X”
上次由 药师9528 在 2017-07-10 15:31,总共编辑 1 次。
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
在我自己写的 Qt 程序里变粗 “X”, 没有使用窗口管理器吧,我没有启动桌面,直接用xinit 启动了我的qt程序。vickycq 写了:是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?药师9528 写了:有时候鼠标就变成了一个“X”
有没有使用窗口管理器?
- astolia
- 论坛版主
- 帖子: 6443
- 注册时间: 2008-09-18 13:11
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
没遇到过这种用着用着自己变的,有可能是运行环境没弄好?或者是你代码无意中改动了系统的设置尤其是环境变量?
光标一般都不是由窗口管理器设置的,而是显示管理器/登录管理器。ubuntu的话,现在是lightdm,从你的描述看,应该没有用它?
直接用xinit启动,最好自己设置一下相关的东西。影响到光标主题的有XCURSOR_THEME环境变量,Xresources文件里设置的Xcursor.theme参数,你都注意一下呗。也可在xinitrc文件里用xsetroot -cursor_name 设置
光标一般都不是由窗口管理器设置的,而是显示管理器/登录管理器。ubuntu的话,现在是lightdm,从你的描述看,应该没有用它?
直接用xinit启动,最好自己设置一下相关的东西。影响到光标主题的有XCURSOR_THEME环境变量,Xresources文件里设置的Xcursor.theme参数,你都注意一下呗。也可在xinitrc文件里用xsetroot -cursor_name 设置
上次由 astolia 在 2017-07-13 11:29,总共编辑 1 次。
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
这两天跟了一下,发现光标变样的情况如下:astolia 写了:没遇到过这种用着用着自己变的,有可能是运行环境没弄好?
影响到光标主题的有XCURSOR_THEME环境变量,Xresources文件里设置的Xcursor.theme参数,你都设置一下呗
或者在xinitrc文件里用xsetroot -cursor_name 设置
我打开了一个弹窗,弹窗上有一个按钮,我点了按钮之后,这个弹窗关闭,并且返回到另一个页面,这时候鼠标就会变成“X”,然后我再点击触摸屏,鼠标又会变回来。
- astolia
- 论坛版主
- 帖子: 6443
- 注册时间: 2008-09-18 13:11
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
从你的描述来看像是因为Qt程序和X用了不同的光标主题。你在xinitrc里给X设置一下主题应该就行了
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
找了一下您说的相关设置,网上说的都比较含糊,请问可以详细一点怎样设置吗?astolia 写了:从你的描述来看像是因为Qt程序和X用了不同的光标主题。你在xinitrc里给X设置一下主题应该就行了
- astolia
- 论坛版主
- 帖子: 6443
- 注册时间: 2008-09-18 13:11
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
就是在.xinitrc里面加一行
将X默认的光标设置为普通箭头,如果你程序默认是其他光标,根据下面的列表选
xsetroot -cursor_name draped_box
xsetroot -cursor_name hand1
xsetroot -cursor_name hand2
xsetroot -cursor_name iron_cross
xsetroot -cursor_name plus
xsetroot -cursor_name top_left_arrow
xsetroot -cursor_name watch
代码: 全选
xsetroot -cursor_name left_ptr
xsetroot -cursor_name draped_box
xsetroot -cursor_name hand1
xsetroot -cursor_name hand2
xsetroot -cursor_name iron_cross
xsetroot -cursor_name plus
xsetroot -cursor_name top_left_arrow
xsetroot -cursor_name watch
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
好的,非常感谢,在网上找了好多 xsetroot 的内容,都比较含糊,多谢您的指教,我现在就设置一下看,如果没有 .xinitrc 的话,是不是自己建立一个 ~/.xinitrc 也可以?astolia 写了:就是在.xinitrc里面加一行将X默认的光标设置为普通箭头,如果你程序默认是其他光标,根据下面的列表选代码: 全选
xsetroot -cursor_name left_ptr
xsetroot -cursor_name draped_box
xsetroot -cursor_name hand1
xsetroot -cursor_name hand2
xsetroot -cursor_name iron_cross
xsetroot -cursor_name plus
xsetroot -cursor_name top_left_arrow
xsetroot -cursor_name watch
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
好的,非常感谢,在网上找了好多 xsetroot 的内容,都比较含糊,多谢您的指教,我现在就设置一下看,如果没有 .xinitrc 的话,是不是自己建立一个 ~/.xinitrc 也可以?astolia 写了:就是在.xinitrc里面加一行将X默认的光标设置为普通箭头,如果你程序默认是其他光标,根据下面的列表选代码: 全选
xsetroot -cursor_name left_ptr
xsetroot -cursor_name draped_box
xsetroot -cursor_name hand1
xsetroot -cursor_name hand2
xsetroot -cursor_name iron_cross
xsetroot -cursor_name plus
xsetroot -cursor_name top_left_arrow
xsetroot -cursor_name watch
-
- 帖子: 9
- 注册时间: 2017-07-10 11:00
- 系统: Ubuntu 14.04
Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
搞定了,我在自己程序里用加了句astolia 写了:就是在.xinitrc里面加一行将X默认的光标设置为普通箭头,如果你程序默认是其他光标,根据下面的列表选代码: 全选
xsetroot -cursor_name left_ptr
xsetroot -cursor_name draped_box
xsetroot -cursor_name hand1
xsetroot -cursor_name hand2
xsetroot -cursor_name iron_cross
xsetroot -cursor_name plus
xsetroot -cursor_name top_left_arrow
xsetroot -cursor_name watch
system("xsetroot -cursor left_ptr");
非常感谢