void TriggerManager::save(Stream& stream) const { stream.writeUint32(triggers.size()); std::list<std::shared_ptr<Trigger> >::const_iterator iter; for(iter = triggers.begin(); iter != triggers.end(); ++iter) { saveTrigger(stream, *iter); } }
Window::Window() { drawArea = new draw; model = new XJRP::SLCModel; triangleMesh = new xd::TriangleMesh; //用来显示层的SpinBox LayerNum = new QSpinBox; LayerNum->setRange(0,0); LayerNum->setSpecialValueText(tr("0 (No Model)")); connect(LayerNum, SIGNAL(valueChanged(int)), this, SLOT(LayerChanged())); LayerNumLabel = new QLabel(tr("Layer Number:")); LayerNumLabel->setBuddy(LayerNum); //用来设置填充模式的combobox infillPatternLabel = new QLabel(tr("Infill Pattern:")); infillPatternComboBox = new QComboBox; infillPatternComboBox->addItem(tr("line")); infillPatternComboBox->addItem(tr("skin_core")); connect(infillPatternComboBox,SIGNAL(currentIndexChanged(int)), this,SLOT(infillPatternChanged(int))); //用来设置参数的LineEdit interval_numEdit = new QLineEdit(tr("2")); interval_numLabel = new QLabel(tr("Interval Number:")); interval_numLabel->setBuddy(interval_numEdit); spaceEdit = new QLineEdit(tr("0.1")); spaceLabel = new QLabel(tr("Space:")); spaceLabel->setBuddy(spaceEdit); shrinkDistanceEdit = new QLineEdit(tr("0.1")); shrinkDistanceLabel = new QLabel(tr("Shrink Distance:")); shrinkDistanceLabel->setBuddy(shrinkDistanceEdit); angle_startEdit = new QLineEdit(tr("0")); angle_startLabel = new QLabel(tr("Angle Start:")); angle_startLabel->setBuddy(angle_startEdit); angle_deltaEdit = new QLineEdit(tr("90")); angle_deltaLabel = new QLabel(tr("angle Delta:")); angle_deltaLabel->setBuddy(angle_deltaEdit); LaserPowerEdit = new QLineEdit(tr("0.079")); LaserPowerLabel = new QLabel(tr("Laser Power:")); LaserPowerLabel->setBuddy(LaserPowerEdit); ScanSpeedEdit = new QLineEdit(tr("3000")); ScanSpeedLabel = new QLabel(tr("Scan Speed:")); ScanSpeedLabel->setBuddy(ScanSpeedEdit); contourNumLabel = new QLabel(tr("Contour Number:")); contourNumEdit = new QLineEdit(tr("1")); contourSpaceLabel = new QLabel("Contour Space:"); contourSpaceEdit = new QLineEdit(tr("0.1")); thickness = new QLabel("thickness:"); thicknessEdit = new QLineEdit(tr("0.1")); //按钮 open = new QPushButton(tr("&open")); save = new QPushButton(tr("&save")); clear = new QPushButton(tr("&clear")); infill = new QPushButton(tr("&infill")); centering = new QPushButton(tr("center")); openSTL = new QPushButton(tr("openSTL")); slice = new QPushButton(tr("slice")); connect(open,SIGNAL(clicked()), this,SLOT(openTrigger())); connect(save,SIGNAL(clicked()), this,SLOT(saveTrigger())); connect(clear,SIGNAL(clicked()), this,SLOT(clearTrigger())); connect(infill,SIGNAL(clicked()), this,SLOT(infillTrigger())); connect(centering,SIGNAL(clicked()), drawArea,SLOT(centering())); connect(openSTL,SIGNAL(clicked()), this,SLOT(openSTLTrigger())); connect(slice,SIGNAL(clicked()), this,SLOT(sliceTrigger())); //布局 QGridLayout *mainLayout = new QGridLayout; mainLayout->addWidget(drawArea, 0, 0, 1, 16); mainLayout->addWidget(open,2, 0); mainLayout->addWidget(clear,2,1); mainLayout->addWidget(LayerNumLabel, 2, 2); mainLayout->addWidget(LayerNum, 2, 3); mainLayout->addWidget(centering,2,4); mainLayout->addWidget(infillPatternLabel,2,5); mainLayout->addWidget(infillPatternComboBox,2,6); mainLayout->addWidget(infill, 2, 7); mainLayout->addWidget(save, 2, 8); mainLayout->addWidget(openSTL,2,11); mainLayout->addWidget(thicknessEdit,2,12); mainLayout->addWidget(thickness,2,13); mainLayout->addWidget(slice,2,14); //第3行 mainLayout->addWidget(contourNumLabel,3,0); mainLayout->addWidget(contourNumEdit,3,1); mainLayout->addWidget(contourSpaceLabel,3,2); mainLayout->addWidget(contourSpaceEdit,3,3); mainLayout->addWidget(spaceLabel,3,4); mainLayout->addWidget(spaceEdit,3,5); mainLayout->addWidget(shrinkDistanceLabel,3,6); mainLayout->addWidget(shrinkDistanceEdit,3,7); mainLayout->addWidget(angle_startLabel,3,8); mainLayout->addWidget(angle_startEdit,3,9); mainLayout->addWidget(angle_deltaLabel,3,10); mainLayout->addWidget(angle_deltaEdit,3,11); mainLayout->addWidget(LaserPowerLabel,3,12); mainLayout->addWidget(LaserPowerEdit,3,13); mainLayout->addWidget(ScanSpeedLabel,3,14); mainLayout->addWidget(ScanSpeedEdit,3,15); //试试放在第三行! mainLayout->addWidget(interval_numLabel,3,0); mainLayout->addWidget(interval_numEdit,3,1); setLayout(mainLayout); //LayerChanged(); setWindowTitle(tr("SLC Read And Infill")); infill->hide(); save->hide(); centering->hide(); interval_numEdit->hide(); interval_numLabel->hide(); }