Qt应用程序Cursor样式
来源:互联网 发布:组织机构图制作软件 编辑:程序博客网 时间:2024/06/06 18:00
Qt应用程序Cursor样式
在X11上,Qt支持Xcursor库,可以随意更改全彩色的Cursor主题。但是在嵌入式Qt开发中,没有Xcursor的支持,效果就没这么乐观。
总结一下,我们可以通过以下三类方式修改Qt应用程序的Cursor样式:
效果图:
总结一下,我们可以通过以下三类方式修改Qt应用程序的Cursor样式:
1. Qt::CursorShape
Qt提供以下CursorShape,如下图:代码:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); setCursor(QCursor(Qt::OpenHandCursor));}
效果图:
对于桌面应用程序开发,系统主题可替代Qt::CursorShape的Cursor样式,比如,当我使用Qt::WaitCursor,程序运行在UBuntu时的样式为:
对于常用嵌入式开发组合Qt-embedded+linux+arm来说,正如Qt::CursorShape原样。
2.QPixmap or QBitmap
代码:Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); QCursor cursor ; QPixmap pixmap("cursor.png") ; cursor = QCursor(pixmap,-1,-1); setCursor(cursor) ;}
对于桌面应用程序开发,可实现全彩色的自定义Cursor,如图:
对于常用嵌入式开发组合Qt-embedded+linux+arm来说,如果使用QWS来启动应用程序,则好好的会变成了。只认识黑白2值,没办法……色盲……
3. x pixmap (xpm)
代码:
static const char *const cursor_xpm[] = { "15 15 3 1", " c None", ". c #0000aa", //.的颜色 "* c #aa0000", //*的颜色 " ..... ", " ..*****.. ", " . *** . ", " . *** . ", " . *** . ", ". *** .", ". ***** .", ".*************.", ". ***** .", ". *** .", " . *** . ", " . *** . ", " . *** . ", " ..*****.. ", " ..... "};Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); QCursor myCursor(cursor_xpm); setCursor(myCursor);}
从cursor_xpm[]形状可以清晰的看到样式效果,如图:
其实xpm的方式和pixmap原理相同,Linux下我们可以轻松通过命令转换图片格式,如png转xpm:
convert 1.png xpm:2.xpm
Windows下也有不少转换软件和工具,可以完成一键转换。
也许你会有这样一个疑问,为何不直接用QPixmap貼原图片,何必转成xpm?我想说,多知道一些途径不是坏事,对你不实用可以不用,当然,xpm绝对有它的用武之地,和它不可磨灭的意义……
- Qt应用程序Cursor样式
- Qt应用程序Cursor样式
- Qt应用程序Cursor样式
- cursor样式
- Qt Cursor
- CSS中cursor样式
- cursor -- 定义鼠标样式
- style cursor 鼠标样式
- CSS样式 cursor
- cursor的所有样式
- html 中cursor的样式
- CSS cursor鼠标样式一览表
- CSS cursor鼠标样式一览表
- css样式cursor属性值
- CSS鼠标指针cursor样式
- 【CSS控制鼠标样式cursor】
- cursor 鼠标样式的几种样式
- Qt样式
- java正则表达式替换
- Mac OS守护进程
- NSObjCRuntime.h
- 猜数字游戏
- 四个排名函数(row_number、rank、dense_rank和ntile)的比较
- Qt应用程序Cursor样式
- 公用表表达式(CTE)的递归调用
- shell命令简单学习
- php编译安装常见错误
- 试题:找出数组中元素和为指定值的所有组合
- Oracle 10g ORA-07445和ORA-00108
- 在SQL Server2005中按列连接字符串的三种方法
- 致苹果CEO库克的一封公开信——《库克,请换一种专利策略》
- C# 中的委托和事件