User:Mort Yao/iGEM: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
 
Line 341: Line 341:
The MView class provides a surface for managing scenes.
The MView class provides a surface for managing scenes.


#include <MView>
#include <MView>


Inherits QGraphicsView.
Inherits QGraphicsView.
Line 367: Line 367:
The MScene class provides a surface for managing items.
The MScene class provides a surface for managing items.


#include <MScene>
#include <MScene>


Inherits QGraphicsScene.
Inherits QGraphicsScene.
Line 405: Line 405:
The MItem class provides graphical items.
The MItem class provides graphical items.


#include <MItem>
#include <MItem>


Inherits QGraphicsItem.
Inherits QGraphicsItem.

Latest revision as of 18:59, 20 October 2010


doc/readme.yaml

<html>

<style type="text/css">

.S0 {

font-family: 'Times New Roman';

color: #000000;

font-size: 11pt;

}

.S2 {

font-weight: bold;

font-family: 'Verdana';

color: #000088;

font-size: 10pt;

}

span {

font-family: 'Verdana';

color: #000000;

font-size: 10pt;

}

</style>

<span><span class="S0"></span><br />

<span class="S2">MosQt库 (版本号0.10.14 alpha)</span>:<br />

<span class="S2">&nbsp;&nbsp;MView.h, MView.cpp</span>:<span class="S0"> MView视图类</span><br />

<span class="S2">&nbsp;&nbsp;MScene.h, MScene.cpp</span>:<span class="S0"> MScene场景类</span><br />

<span class="S2">&nbsp;&nbsp;MItem.h, MItemPainter.hxx, MItem.cpp</span>:<span class="S0"> MItem类</span><br />

<span class="S2">&nbsp;&nbsp;MWidget.h, MWidget.cpp</span>:<span class="S0"> MWidget类</span><br />

<span class="S2">&nbsp;&nbsp;MSplashScreen.h, MSplashScreen.cpp</span>:<span class="S0"> MSplashScreen启动窗口类</span><br />

<span class="S2">&nbsp;&nbsp;MosQt</span>:<span class="S0"> 宏定义</span><br />

<br />

<span class="S2">示例1 demoUiXml</span>:<br />

<span class="S2">&nbsp;&nbsp;.session</span>:<span class="S0"> SciTE工作文件</span><br />

<span class="S2">&nbsp;&nbsp;.pro</span>:<span class="S0"> qmake工程文件</span><br />

<span class="S2">&nbsp;&nbsp;.cpp</span>:<span class="S0"> 源文件</span><br />

<span class="S2">&nbsp;&nbsp;.ui.xml</span>:<span class="S0"> 界面XML</span><br />

<span class="S2">&nbsp;&nbsp;.project.xml</span>:<span class="S0"> 工程XML</span><br />

<span class="S2">&nbsp;&nbsp;.make_win.sh</span>:<span class="S0"> 编译生成 shell (for win)</span><br />

<span class="S2">&nbsp;&nbsp;.make_linux.sh</span>:<span class="S0"> &nbsp;编译生成 shell (for linux)</span><br />

<span class="S2">&nbsp;&nbsp;.make_freebsd.sh</span>:<span class="S0"> &nbsp;编译生成 shell (for freebsd)</span><br />

<span class="S2">&nbsp;&nbsp;.run_win.sh</span>:<span class="S0"> 运行 shell (for win)</span><br />

<span class="S2">&nbsp;&nbsp;.run_linux.sh</span>:<span class="S0"> 运行 shell (for linux)</span><br />

<span class="S2">&nbsp;&nbsp;.clean.sh</span>:<span class="S0"> 清除所有 编译生成文件 shell</span><br />

<br />

<span class="S2">示例2 iGaME</span>:<br />

<br />

<br />

<span class="S0"></span></span>

</html>


doc/docUiXml.yaml

<html>

<style type="text/css">

.S0 {

font-family: 'Times New Roman';

color: #000000;

font-size: 11pt;

}

.S2 {

font-weight: bold;

font-family: 'Verdana';

color: #000088;

font-size: 10pt;

}

span {

font-family: 'Verdana';

color: #000000;

font-size: 10pt;

}

</style>

<span><span class="S0"></span><br />

<span class="S2">UI XML Format Standard</span>:<br />

<br />

<span class="S0">&nbsp;&nbsp;- 标签的属性应严格在标签&lt; &gt;内部,使用字符串定义</span><br />

<span class="S0">&nbsp;&nbsp;- 布尔值使用"0" / "1"定义</span><br />

<span class="S0">&nbsp;&nbsp;- 绝不能重复定义任何属性</span><br />

<span class="S0">&nbsp;&nbsp;- 允许定义暂时还不存在的属性,即使对外观没有任何影响</span><br />

<span class="S0">&nbsp;&nbsp;- 建议所有常用的属性都进行定义;某些属性不定义会取默认值,但不推荐</span><br />

<span class="S0">&nbsp;&nbsp;- 标签下的子标签视作对象的子对象,可以通过这种方式把对象作为其他对象的容器</span><br />

<span class="S0">&nbsp;&nbsp;- 标签必须严格使用"/&gt;"或"&lt;/label&gt;"关闭,否则会出现不可预料的后果</span><br />

<br />

<span class="S2">UI XML Reference</span>:<br />

<br />

<span class="S2">&nbsp;&nbsp;id</span>:<span class="S0"> 对象ID</span><br />

<span class="S2">&nbsp;&nbsp;name</span>:<span class="S0"> 对象名称</span><br />

<span class="S2">&nbsp;&nbsp;category</span>:<span class="S0"> 对象类别</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;x</span>:<span class="S0"> 对象X坐标(子对象使用原点在父对象中心的笛卡尔坐标系,最高级别对象使用屏幕坐标系)</span><br />

<span class="S2">&nbsp;&nbsp;y</span>:<span class="S0"> 对象Y坐标(子对象使用原点在父对象中心的笛卡尔坐标系,最高级别对象使用屏幕坐标系)</span><br />

<span class="S2">&nbsp;&nbsp;zValue</span>:<span class="S0"> 对象Z坐标(决定叠放顺序)</span><br />

<br />

<span class="S2">&nbsp;&nbsp;width</span>:<span class="S0"> 对象宽度</span><br />

<span class="S2">&nbsp;&nbsp;height</span>:<span class="S0"> 对象高度</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;toolTip</span>:<span class="S0"> 对象鼠标悬停提示文本</span><br />

<span class="S2">&nbsp;&nbsp;color</span>:<span class="S0"> 对象颜色,默认"#000000"</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;isVisible</span>:<span class="S0"> 对象是否可见,默认"1"</span><br />

<span class="S2">&nbsp;&nbsp;isSelectable</span>:<span class="S0"> 对象是否鼠标点击可选,默认"0"</span><br />

<span class="S2">&nbsp;&nbsp;isMouseOverSelectable</span>:<span class="S0"> 对象是否鼠标悬停可选,默认"0"</span><br />

<span class="S2">&nbsp;&nbsp;isMovable</span>:<span class="S0"> 对象是否可拖动,默认"0"</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;isOutlineAvailable</span>:<span class="S0"> 对象选中时轮廓是否可见</span><br />

<span class="S2">&nbsp;&nbsp;outlineColor</span>:<span class="S0"> 对象轮廓的颜色</span><br />

<span class="S2">&nbsp;&nbsp;outlineWidth</span>:<span class="S0"> 对象轮廓的粗细</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;isTextVisible</span>:<span class="S0"> 对象文本是否可见</span><br />

<span class="S2">&nbsp;&nbsp;text</span>:<span class="S0"> 对象文本</span><br />

<span class="S2">&nbsp;&nbsp;textColor</span>:<span class="S0"> 对象文本的颜色</span><br />

<span class="S2">&nbsp;&nbsp;isAlternativeTextAvailable</span>:<span class="S0"> 对象选中时替代文本是否可用</span><br />

<span class="S2">&nbsp;&nbsp;alternativeText</span>:<span class="S0"> 对象选中时替代文本</span><br />

<span class="S2">&nbsp;&nbsp;alternativeTextColor</span>:<span class="S0"> 对象选中时替代文本的颜色</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;isFigureVisible</span>:<span class="S0"> 对象几何形状是否可见</span><br />

<span class="S2">&nbsp;&nbsp;figure</span>:<span class="S0"> 对象几何形状:"RECTANGLE"(矩形);"ELLIPSE"(椭圆形);"ROUND_RECTANGLE"(圆角矩形)</span><br />

<span class="S2">&nbsp;&nbsp;figureColor</span>:<span class="S0"> 对象几何形状的颜色</span><br />

<span class="S2">&nbsp;&nbsp;isAlternativeFigureAvailable</span>:<span class="S0"> 对象选中时替代几何形状是否可用</span><br />

<span class="S2">&nbsp;&nbsp;alternativeFigure</span>:<span class="S0"> 对象选中时替代几何形状</span><br />

<span class="S2">&nbsp;&nbsp;alternativeFigureColor</span>:<span class="S0"> 对象选中时替代几何形状的颜色</span><br />

<span class="S0">&nbsp;&nbsp;</span><br />

<span class="S2">&nbsp;&nbsp;isPixmapVisible</span>:<span class="S0"> 对象像素图是否可见</span><br />

<span class="S2">&nbsp;&nbsp;pixmap</span>:<span class="S0"> 对象像素图的文件路径</span><br />

<span class="S2">&nbsp;&nbsp;isAlternativePixmapAvailable</span>:<span class="S0"> 对象选中时替代像素图是否可用</span><br />

<span class="S2">&nbsp;&nbsp;alternativePixmap</span>:<span class="S0"> 对象选中时替代像素图的文件路径</span><br />

<br />

<br />

<span class="S0"></span></span>

</html>

doc/docMosQt.wiki

MosQt UI Framework

  • 包含头文件,仅需一行:
#include <MosQt>
  • 声明界面元素:
namespace uiObjects {
MView * mainView;
MScene * mainScene[10];
MItem *item[100];
MWidget *widget[100];
};
// 所有界面元素(包括:MView*、MScene*、MItem*、MWidget*)都必须在这里定义,否则会产生不可预料的后果= =
// namespace名称可自定
using namespace uiObjects;

  • 主函数:
BEGIN(projectName)
{
   /* 函数main(),用于描述和创建界面元素 */
   
   // projectName->setPixmap("pixmapPath");
   // 设置程序splash窗口图片,程序较大启动较慢时可能会需要
   // 程序启动完成后splash窗口会自动析构,无需程序员管理
   
   // mainView = new MView();
   // 创建窗口
   // mainView->show();
   // 设置窗口为显示
   // mainView->setWindowTitle("projectName");
   // 设置窗口名称
   
   // mainScene = new MScene();
   // 创建场景
   // mainView->setScene(mainScene);
   // 将该场景设置窗口的当前场景
   // 注意:场景用于管理界面对象
   // 任何MView窗口必须通过当前场景来显示和处理对象,因此必须给窗口设置一个当前场景
   // 一个场景可以被设置为多个窗口的当前场景,也可以不被设置为任何一个窗口的当前场景
   // 显然,只有当前窗口的当前场景中的界面对象才是用户可见的
   
   // item[0] = new MItem();
   // 创建MItem界面对象
   // mainScene->addItem(item[0]);
   // 添加该对象到某个场景
   // item[0]->setText("Hello world");
   // 对象的各种属性设置。。。
   // 注意:场景用于管理界面对象,一个对象可以被添加到多个场景,也可以不被添加到任何场景
   // 显然,只有被添加到当前窗口的当前场景中的界面对象才是用户可见的
   
   // QLineEdit* lineEdit = new QLineEdit;
   // widget[0] = mainScene->addWidget(lineEdit);
   // 创建MWidget界面对象
   // MWidget界面对象是用于Qt原生widget的容器
   // 可以通过MWidget向场景中添加任何Qt原生widget
   
}
END(projectName)
  • 事件处理函数:
BEGIN_EVENTS(projectName)
{
   /* 函数handler(),隐藏了Qt的signal-slot机制,
   便于在一个函数内实现界面逻辑,且不需要创建任何新类 */
   
   // MView* EVENT_VIEW 返回发生事件的窗口
   // MScene* EVENT_SCENE 返回发生事件的场景
   // MItem* EVENT_ITEM 返回发生事件的对象
   // QMouseEvent* MOUSE_EVENT 返回发生的键盘事件
   // QKeyEvent* KEY_EVENT 返回发生的键盘事件
   
   // bool MOUSE_LEFT 鼠标左键点击事件
   // bool MOUSE_RIGHT 鼠标右键点击事件
}
END_EVENTS(projectName)

MView Class Reference

The MView class provides a surface for managing scenes.

#include <MView>

Inherits QGraphicsView.

Public Functions

  • MView(QWidget* parent)
Constructor
  • ~MView()
Destructor


  • QGraphicsScene* scene () const
返回当前场景
  • void setScene(QGraphicsScene* scene)
设置当前场景


MScene Class Reference

The MScene class provides a surface for managing items.

#include <MScene>

Inherits QGraphicsScene.

Public Functions

  • MScene(QObject* parent = 0)
Constructor
  • ~MScene()
Destructor


  • void addItem(QGraphicsItem* item)
添加对象到场景
  • MItem* selectedItem() const;
返回场景中选中的对象(唯一)
  • void selectedItemBringToFront();
将选中对象置于最前端
  • void selectedItemSendToBack();
将选中对象置于最底端

void loadXml(const QString& fileName)

读取场景XML

void writeXml(const QString& fileName)

写入场景XML


MItem Class Reference

The MItem class provides graphical items.

#include <MItem>

Inherits QGraphicsItem.

Public Functions

  • MItem()
Constructor
  • ~MItem()
Destructor


  • QString id()
返回对象ID
  • void setId(QString id)
设置对象ID,默认值为空串
  • QString name()
返回对象名称
  • void setName(QString name)
设置对象名称,默认值为空串
  • QString category()
返回对象类别
  • void setCategory(QString category)
设置对象类别,默认值为空串


  • QPointF pos()
返回对象坐标
  • void setPos(qreal x, qreal y)
设置对象坐标,默认值为QPointF(0, 0)
  • qreal x()
返回对象X坐标
  • void setX(qreal x)
设置对象X坐标,默认值为0
  • qreal y()
返回对象Y坐标
  • void setY(qreal y)
设置对象Y坐标,默认值为0
  • qreal zValue ()
返回对象Z坐标
  • void setZValue(qreal z )
设置对象Z坐标(决定对象的叠放顺序),默认值为0
  • void toolTip(const QString& toolTip)
返回鼠标悬停提示文本
  • void setToolTip(const QString& toolTip)
设置鼠标悬停提示文本,默认值为空串
  • bool isVisible ()
检查对象是否显示
  • void setVisible(bool isVisible)
设置对象是否显示,默认值为true


  • QColor color()
返回对象的颜色
  • void setColor(QColor color)
设置对象的颜色,默认值为QColor(0, 0, 0)
注意,这里的颜色仅仅为形式上,不起任何作用
对象的事实外观颜色由其几何形状的颜色或像素图等属性决定
  • qreal width()
返回对象宽度
  • void setWidth(qreal width)
设置对象宽度,默认值为100
  • qreal height()
返回对象高度
  • void setHeight(qreal height)
设置对象高度,默认值为100
  • qreal padding()
返回对象填充宽度
  • void setPadding(qreal padding)
设置对象填充宽度,默认值为0
  • qreal margin()
返回对象边缘宽度
  • void setMargin(qreal margin)
设置对象边缘宽度,默认值为0


  • bool isSelectable()
检查对象是否鼠标点击可选
  • void setSelectable(bool isSelectable)
设置对象是否鼠标点击可选,默认值为false
  • bool isMouseOverSelectable()
检查对象是否鼠标悬停可选
  • void setMouseOverSelectable(bool isMouseOverSelectable)
设置对象是否鼠标悬停可选,默认值为false
  • bool isMovable()
检查对象是否可拖动
  • void setMovable(bool isMovable)
设置对象是否可拖动,默认值为false


  • QColor outlineColor()
返回对象轮廓的颜色
  • void setOutlineColor(QColor outlineColor)
设置对象轮廓的颜色,默认值为QColor(0, 0, 255)
  • int outlineWidth()
返回对象轮廓的粗细
  • void setOutlineWidth(int outlineWidth)
设置对象轮廓的粗细,默认值为5
  • Qt::PenStyle outlineStyle()
返回对象轮廓的线型
  • void setOutlineStyle(Qt::PenStyle outlineStyle)
设置对象轮廓的线型,默认值为Qt::SolidLine
  • bool isOutlineAvailable()
检查选中时对象轮廓是否显示
  • void setOutlineAvailable(bool isOutlineAvailable)
设置选中时对象轮廓是否显示,默认值为false


  • QString text()
返回对象标签文字
  • void setText(QString text)
设置对象标签文字,默认值为空串
  • QFont textFont()
返回对象标签文字的字体
  • void setTextFont(QFont textFont)
设置对象标签文字的字体,默认值为QFont("Arial", 10, QFont::Normal)
  • QColor textColor()
返回对象标签文字的颜色
  • void setTextColor(QColor textColor)
设置对象标签文字的颜色,默认值为QColor(255, 0, 0)
  • bool isTextVisible()
检查对象标签文字是否显示
  • void setTextVisible(bool isTextVisible)
设置对象标签文字是否显示,默认值为true


  • QString alternativeText()
返回对象选中时替代标签文字
  • void setAlternativeText(QString alternativeText)
设置对象选中时替代标签文字,默认值为空串
  • QFont alternativeTextFont()
返回对象选中时替代标签文字的字体
  • void setAlternativeTextFont(QFont alternativeTextFont)
设置对象选中时替代标签文字的字体,默认值为QFont("Arial", 10, QFont::Normal)
  • QColor alternativeTextColor()
返回对象选中时替代标签文字的颜色
  • void setAlternativeTextColor(QColor alternativeTextColor)
设置对象选中时替代标签文字的颜色,默认值为QColor(255, 0, 0)
  • bool isAlternativeTextAvailable()
检查对象选中时替代标签文字是否可用
  • void setAlternativeTextAvailable(bool isAlternativeTextAvailable)
设置对象选中时替代标签文字是否可用,默认值为false


  • QString figure()
返回对象几何形状
  • void setFigure(QString figure)
设置对象几何形状,默认值为"RECTANGLE"
可用几何形状:
  • "RECTANGLE" - 矩形
  • "ELLIPSE" - 椭圆形
  • "ROUND_RECTANGLE" - 圆角矩形
  • QColor figureColor()
返回对象几何形状的颜色
  • void setFigureColor(QColor figureColor)
设置对象几何形状的颜色,默认值为QColor(0, 0, 0)
  • bool isFigureVisible()
检查对象几何形状是否显示
  • void setFigureVisible(bool isFigureVisible)
设置对象几何形状是否显示,默认值为false


  • QString alternativeFigure()
返回对象选中时替代几何形状
  • void setAlternativeFigure(QString alternativeFigure)
设置对象选中时替代几何形状,默认值为空串
  • QColor alternativeFigureColor()
返回对象选中时替代几何形状的颜色
  • void setAlternativeFigureColor(QColor alternativeFigureColor)
设置对象选中时替代几何形状的颜色,默认值为QColor(0, 0, 0)
  • bool isAlternativeFigureAvailable()
检查对象选中时替代几何形状是否可用
  • void setAlternativeFigureAvailable(bool isAlternativeFigureAvailable)
设置对象选中时替代几何形状是否可用,默认值为false


  • QString pixmap()
返回对象像素图的文件路径
  • void setPixmap(QString pixmap)
设置对象像素图的文件路径,默认值为空串
  • bool isPixmapVisible()
检查对象像素图是否显示
  • void setPixmapVisible(bool isPixmapVisible)
设置对象像素图是否显示,默认值为false


  • QString alternativePixmap()
返回对象选中时替代像素图的文件路径
  • void setAlternativePixmap(QString alternativePixmap)
设置对象选中时替代像素图的文件路径,默认值为空串
  • bool isAlternativePixmapAvailable()
检查对象选中时替代像素图是否可用
  • void setAlternativePixmapAvailable(bool isAlternativePixmapAvailable)
设置对象选中时替代像素图是否可用,默认值为false