工作之余,结合最近工作,打算开发一个基于osg的仿真平台,目前雏形已经完成,之后会不断充实。平台大致划分成六部分,一部分管理文件,一部分管理仿真模型,一部分显示二三维和红外视图,一部分管理常见的测试工具,一部分管理仿真场景的天气等环境,一部分负责控制仿真过程。
界面如下:
界面是用Qt5自己搭了一个,美观方面凑合着看就行了,图标下载后自己PS的。Qt UI如下:
主窗口自己写了个可以拖拽的QtableWidget,插入2页,第1页显示三维,第2页显示二维。拖拽出的窗口双击之后又可以嵌回去,效果如下:
核心代码:
bool CWidget::event(QEvent* event)
{
if (event->type() == QEvent::NonClientAreaMouseButtonDblClick)
{
emit sig_doubleClickedTitleBar();
return true;
}
return QWidget::event(event);
}
void CTabBar::mousePressEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton)
{
pressFlag = true;
}
QTabBar::mousePressEvent(event);
}
void CTabBar::mouseReleaseEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton && pressFlag)
{
pressFlag = false;
if (tabRect(currentIndex()).contains(event->pos()))
return;
emit sig_tabDrag(currentIndex(), event->pos());
}
}