通过Xinit 启动的Qt程序,鼠标有时候变为“X”
发表于 : 2017-07-10 11:13
如题,题主在开发一款运行在Ubuntu上面的软件,使用Qt5开发,开机启动终端后使用xinit 启动我自己的qt程序,现在的问题是,我程序用着用着,有时候鼠标就变成了一个“X”(原始X Window的那个样式),请教一下前辈们有没有遇到过类似的情况,如果有的话,还请不吝赐教。
是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?药师9528 写了:有时候鼠标就变成了一个“X”
就在我自己的那个 Qt 程序里,鼠标由正常的样子,变成了 X window 默认的那个 “X”,没有开其他的程序。vickycq 写了:是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?药师9528 写了:有时候鼠标就变成了一个“X”
在我自己写的 Qt 程序里变粗 “X”, 没有使用窗口管理器吧,我没有启动桌面,直接用xinit 启动了我的qt程序。vickycq 写了:是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?药师9528 写了:有时候鼠标就变成了一个“X”
有没有使用窗口管理器?
这两天跟了一下,发现光标变样的情况如下:astolia 写了:没遇到过这种用着用着自己变的,有可能是运行环境没弄好?
影响到光标主题的有XCURSOR_THEME环境变量,Xresources文件里设置的Xcursor.theme参数,你都设置一下呗
或者在xinitrc文件里用xsetroot -cursor_name 设置
找了一下您说的相关设置,网上说的都比较含糊,请问可以详细一点怎样设置吗?astolia 写了:从你的描述来看像是因为Qt程序和X用了不同的光标主题。你在xinitrc里给X设置一下主题应该就行了
代码: 全选
xsetroot -cursor_name left_ptr
好的,非常感谢,在网上找了好多 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
好的,非常感谢,在网上找了好多 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
搞定了,我在自己程序里用加了句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