首页 >> 大全

数字微流控生物芯片模拟界面

2023-12-07 大全 26 作者:考证青年

1.使用方法

程序进入界面

可以看到左侧的工具栏,上部的菜单栏,左侧的网格线,右侧依次排列的是计时器,命令显示窗口,清洗功能选择按钮。

左侧工具栏从上之下依次为:

设置网格的基本宽高及 Input 位置读入命令文档开始连续播放画面单步向后执行命令,每次点击时间加一向前一步重置时间及网格状态选择声音是否播放退出程序

以下简述程序正常运行的步骤

首先设置网格基本属性

注意设置 Input 时,每次添加一个 Input 位置需点击 键来保存,设置完毕后点击 OK 确认。

读入命令文件

弹出文件选择窗口,选择文件即可。

模拟芯片版图设计__模拟芯片设计流程

选择后右侧显示命令。

普通执行

点击

单步执行或者点击

连续执行。

执行中画面

此时可以选择是否开启声音以及是否重置,点击上一步可回退执行。

当程序执行完所有命令后显示污染次数。

带清洗功能的执行

选择"加入清洗功能",显示清洗 Input 与

模拟芯片版图设计_模拟芯片设计流程_

此时只有"下一步"可用,点击可出现自动移动的清洗液滴(同心圆)。

清洗功能可以取消。

清洗过程中可以点击方块添加障碍,在下一次执行"下一步时"会自动避开此障碍。

2.设计说明

程序文件树:

其中主要有以下类:

class Kernel : public QObject//管理数据
{Q_OBJECT
public:Cube CubeData[14][14];//格子的数据int Width = 8;int Height = 8;QVector InputPositions;Position OutputPosition;QStringList Orders;int Time = -1;//时间int Interval = 700; //间隔时间msint KindNumber = 0;//液滴总数bool Sound = true;bool Wash = false;//是否清洗状态QVector ColorName;
};http://www.biyezuopin.vipclass Cube{//单个格子的数据
public:Position Other = Position(0, 0);//用于Split与Merge中间状态int kind = -1;//now drop kindbool Expanding = false;//now ecllipsebool blocked = false;//是否是阻挡方块bool Washing = false;//是否是清洁液滴QVector PolluteKinds;//Polluted Drop Kinds
};struct Position{//封装位置数据
public:int X;int Y;
};class PaintWidget : public QWidget//继承自QWidget的自定义类,加入数据管理与绘图功能
{Q_OBJECT
public:http://www.biyezuopin.vipexplicit PaintWidget(QWidget *parent = nullptr);void paintEvent(QPaintEvent *);//绘图函数Kernel * kernel = nullptr;QVector InputPositions_draw;Position OutputPosition_draw = Position(0,1);bool end = false;//是否结束};

程序有两个 UI 窗口:一个主界面,一个用来设定基本属性的对话框。

数据管理与操作在 类中实现,UI 界面类( 类, 类)中有指向 的指针,用于实现 UI 界面与数据内核的分离。

操作事件一般会触发 UI 界面类的槽函数,进而调用 里对应的操作槽函数。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了