当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-10 11:13 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
如题,题主在开发一款运行在Ubuntu上面的软件,使用Qt5开发,开机启动终端后使用xinit 启动我自己的qt程序,现在的问题是,我程序用着用着,有时候鼠标就变成了一个“X”(原始X Window的那个样式),请教一下前辈们有没有遇到过类似的情况,如果有的话,还请不吝赐教。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-10 12:58 
头像

注册: 2011-03-20 13:12
帖子: 4273
地址: 山东省寿光县
系统: Debian
送出感谢: 100
接收感谢: 937
药师9528 写道:
有时候鼠标就变成了一个“X”

是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?
有没有使用窗口管理器?


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户的加入


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-10 13:49 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
vickycq 写道:
药师9528 写道:
有时候鼠标就变成了一个“X”

是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?


就在我自己的那个 Qt 程序里,鼠标由正常的样子,变成了 X window 默认的那个 “X”,没有开其他的程序。


最后由 药师9528 编辑于 2017-07-10 15:31,总共编辑了 1 次

页首
 用户资料  
 
4 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-10 15:20 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
vickycq 写道:
药师9528 写道:
有时候鼠标就变成了一个“X”

是在 Qt 程序里面变成 “X”, 还是在外面,即 X 根窗口上变成 “X”?
有没有使用窗口管理器?


在我自己写的 Qt 程序里变粗 “X”, 没有使用窗口管理器吧,我没有启动桌面,直接用xinit 启动了我的qt程序。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 11:23 
头像

注册: 2008-09-18 13:11
帖子: 2557
送出感谢: 1
接收感谢: 394
没遇到过这种用着用着自己变的,有可能是运行环境没弄好?或者是你代码无意中改动了系统的设置尤其是环境变量?
光标一般都不是由窗口管理器设置的,而是显示管理器/登录管理器。ubuntu的话,现在是lightdm,从你的描述看,应该没有用它?
直接用xinit启动,最好自己设置一下相关的东西。影响到光标主题的有XCURSOR_THEME环境变量,Xresources文件里设置的Xcursor.theme参数,你都注意一下呗。也可在xinitrc文件里用xsetroot -cursor_name 设置


最后由 astolia 编辑于 2017-07-13 11:29,总共编辑了 1 次

页首
 用户资料  
 
6 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 11:27 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
astolia 写道:
没遇到过这种用着用着自己变的,有可能是运行环境没弄好?
影响到光标主题的有XCURSOR_THEME环境变量,Xresources文件里设置的Xcursor.theme参数,你都设置一下呗
或者在xinitrc文件里用xsetroot -cursor_name 设置


这两天跟了一下,发现光标变样的情况如下:

我打开了一个弹窗,弹窗上有一个按钮,我点了按钮之后,这个弹窗关闭,并且返回到另一个页面,这时候鼠标就会变成“X”,然后我再点击触摸屏,鼠标又会变回来。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 11:38 
头像

注册: 2008-09-18 13:11
帖子: 2557
送出感谢: 1
接收感谢: 394
从你的描述来看像是因为Qt程序和X用了不同的光标主题。你在xinitrc里给X设置一下主题应该就行了


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 13:35 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
astolia 写道:
从你的描述来看像是因为Qt程序和X用了不同的光标主题。你在xinitrc里给X设置一下主题应该就行了


找了一下您说的相关设置,网上说的都比较含糊,请问可以详细一点怎样设置吗?


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 15:17 
头像

注册: 2008-09-18 13:11
帖子: 2557
送出感谢: 1
接收感谢: 394
就是在.xinitrc里面加一行
代码:
xsetroot -cursor_name left_ptr

将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



_________________
评价: 3.85% 药师9528
 
页首
 用户资料  
 
10 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 15:21 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
astolia 写道:
就是在.xinitrc里面加一行
代码:
xsetroot -cursor_name left_ptr

将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 的内容,都比较含糊,多谢您的指教,我现在就设置一下看,如果没有 .xinitrc 的话,是不是自己建立一个 ~/.xinitrc 也可以?


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 15:22 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
astolia 写道:
就是在.xinitrc里面加一行
代码:
xsetroot -cursor_name left_ptr

将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 的内容,都比较含糊,多谢您的指教,我现在就设置一下看,如果没有 .xinitrc 的话,是不是自己建立一个 ~/.xinitrc 也可以?


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 通过Xinit 启动的Qt程序,鼠标有时候变为“X”
帖子发表于 : 2017-07-13 15:56 

注册: 2017-07-10 11:00
帖子: 8
系统: Ubuntu 14.04
送出感谢: 1
接收感谢: 0 次
astolia 写道:
就是在.xinitrc里面加一行
代码:
xsetroot -cursor_name left_ptr

将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


搞定了,我在自己程序里用加了句
system("xsetroot -cursor left_ptr");
非常感谢


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译