关于Qt Designer中的Action

今天在用Qt Designer设计主窗口的ToolBar时遇到一个很诡异的问题,首先从menu菜单里面新建一个Actionpen,把它拖动到了ToolBar里面,并且为这个action定义了图标,tooltip等信息。

后来发现action不能用buttongroup来定义互斥的check,而且toolbar里面无法拖入QPushButton,只能拖入Action。于是想了一想把所有从Qt Designer定义的Action都删了,删掉ToolBar里面的action我用右击->remove action ‘xxx’,只留下一个空的QToolBar。其他在程序里面写。

好吧,这还不是[......]

继续阅读

Qt Graphics View 框架

来自我的CSDN博客

这几天做**设计相关编程用了很多QPainter相关的操作,写了不少Qt代码让我对Qt又有了进一步的认识。最近翻看Qt 的 Demos and Examples 发现在Graphics view里面有一个elastic node的示例,程序仅仅定义了背景和小球绘制操作便完成了复杂的鼠标,键盘等交互。在让我大为惊叹Qt 强大的同时,也决定学一学。查找了Qt 帮助文档,这一系列操作都用到了Qt Graphics View Framework。

Graphics View 框架提供了一个界面,用于管理和交互大量的用户自定义的2D图形物件,并且有一个view wi[......]

继续阅读

Qt Graphics Framework 学习笔记

这里有一篇我从我CSDN博客搬来的原来做的Graphics Framework的笔记。

最近在用Qt的Graphics Framwork作一些类似illustrator矢量作图的小程序,用户需要做的是使用自定义关键点(鼠标点击)绘制一个由贝塞尔曲线构成的带颜色的斑点,可以在之后移动关键点,可以根据关键点2边的控制点改变曲线形状,在此基础上在添加一些算法。

之前也同样用Qt绘制过相似的功能,不过那个是直接用QWidget的Painter实现的,也就是什么都是自己画的,初步交互还可以,但例如缩放,移动,旋转这些操作,相想就比较麻烦,自己实现可能效率还不高。后来在Qt demo里面看到哥[......]

继续阅读

Qt itemview中delegate的用法

Qt中当用到QTreeView和QTableView等用于显示item的视图时,你要编辑一个item用到的编辑工具可能是除了默认文字编辑lineEdit以外的工具,例如button,spinBox,甚至Slider,很有可能是自定义的widget,比如自己写一个用于打开文件的item,你可能会新建一个widget,里面封装一个lineEdit用于显示打开文件的文件名,后面添加一个button,用来打开一个dialog窗口,使用QHBoxLayout布局,分配好长宽比例。

看了Qt Demos里面一个用spinbox的例子,讲了几个最基本的用法。我总结了一下从这个例子学到的:

  1. 自定[......]

继续阅读

WordPress 代码高亮插件

WordPress的代码高亮插件我一共用了4种,分别是:WP-CodeBox,SyntaxHighlighter Evolved,auto-syntaxHighlighter,wp-syntax。

选择插件是有条件的:

  1. 首先能够高亮的语言要够齐全吧,虽然现在只用到了CPP,保不齐以后用个“撸一把”“抓哇”等等。
  2. 然后高亮效果要漂亮。
  3. 接着方便编辑
  4. 最后一个也算比较重要的一个:RSS输出最好能高亮,不济也得保留着格式吧。

一个个看:

WP-CodeBox

 

  • 用的标签是<pre lang=”LANGUAGE”>co[......]

继续阅读

如何使用glew

使用glew

glew也是一个扩展库,包含了OpenGL中许多核心及扩展函数,现在的版本是1.7,支持OpenGL4.2,可以到这里下载:http://glew.sourceforge.net/

下载了glew库的话,那么可以直接使用该扩展,但是使用之前首先要确定你的显卡是否支持该扩展。方法如下:

如何判断显卡所支持的扩展:
使用函数glGetString,看一下它的原型:

const GLubyte *glGetString( GLenum name );

我们以GL_EXTENSIONS为参数调用该函数,就能获得当前显卡所支持的所有扩展,像下面这样:

const G[......]

继续阅读

OpenGL 的 MODELVIEW 和 PROJECTION 矩阵

在体绘制程序里面不可避免的又碰到了这些语句,包括glPushMatrix(),glPopMatrix(),glMatrixMode();

第一次接触这些语句是在大三,刚刚接触opengl的时候,那时候知道这些东西是必须的,加在哪里是示例程序给的,管他到底干什么的,反正基本都这么用。然后毕设或者刚开始读研,搞了一本OpenGL红宝书,开始认认真真看了看,在视图这一章看到了这些函数的作用,用法,知道了他们到底是干嘛的,是用来控制看的方向的,模型视图,投影视图神马的都有一些个矩阵控制的,这些函数就是用来控制这些矩阵的。

pushMatrix顾名思义就是将矩阵压入堆栈的,相当于我保存了这个矩阵,让[......]

继续阅读

体绘制TF及GLSL配置

在混合volume render程序中的1D TF code

  1. RGBA都为0~255,正好一个byte,unsigned int,char型。
  2. 一个节点(传输函数上的关键节点)上的信息为:intensity+color[RBGA]。
  3. 透明度值a用0~255存储,用的时候(float)/255.f。
  4. intensity大的点在update的时候必须>=原来intensity比其小的店,比较,移动等问题,用插入排序。

绘制一共需要3个纹理:

  1. 一个3D texture 存放体数据。
  2. 3个2D texture: ray casting 起始位置纹理,ray[......]

继续阅读

QGraphicsItem中坐标系的转换

Qt中的坐标系统有屏幕坐标,窗口Widget坐标,局部坐标3种坐标系。
其中Qt 的Qt Graphics Framework有另外几个QGraphicsScene坐标系,QGraphicsItem坐标系。
一般情况下,QGrapicsScene坐标系对应窗口坐标,QGraphicsItem对应局部坐标。
鼠标事件QMouseEvent包含2种坐标系,一个屏幕坐标,一个窗口坐标。
其中的
event->pos()返回窗口坐标,globalPos()对应屏幕坐标。

以下这些函数是QGraphicsItem中方便进行坐标变换的函数,都是一些重载函数,能够变换QPoint,QPolyg[......]

继续阅读

第 2 页,共 2 页12