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(); }
MousePluginWidget::MousePluginWidget(const QString &pluginName, const QString &trigger, QGridLayout *layoutHack, QWidget *parent) : QObject(parent), m_configDlg(0), m_containment(0), m_lastConfigLocation(trigger), m_tempConfigParent(QString(), KConfig::SimpleConfig) { KPluginInfo::List plugins = Plasma::ContainmentActions::listContainmentActionsInfo(); if (plugins.isEmpty()) { //panic!! QLabel *fail = new QLabel(i18n("No plugins found, check your installation."), parent); layoutHack->addWidget(fail, 0, 0); return; } //make us some widgets m_pluginList = new QComboBox(parent); m_aboutButton = new QToolButton(parent); m_clearButton = new QToolButton(parent); m_triggerButton = new MouseInputButton(parent); m_configButton = new QToolButton(parent); //m_ui.description->setText(plugin.comment()); //plugin list //FIXME is there some way to share this across all the entries? foreach (const KPluginInfo& plugin, plugins) { if (plugin.property("NoDisplay").toBool()) { continue; } m_pluginList->addItem(KIcon(plugin.icon()), plugin.name(), QVariant::fromValue(plugin)); if (plugin.pluginName() == pluginName) { m_pluginList->setCurrentIndex(m_pluginList->count() - 1); m_plugin = plugin; } } if (! m_plugin.isValid()) { //probably an empty string; pick the first one m_pluginList->setCurrentIndex(0); m_plugin = plugins.first(); } //I can haz config? m_tempConfig = KConfigGroup(&m_tempConfigParent, "test"); if (!m_plugin.property("X-Plasma-HasConfigurationInterface").toBool()) { m_configButton->setVisible(false); } setTrigger(trigger); //pretty icons for the buttons m_aboutButton->setIcon(KIcon("dialog-information")); m_aboutButton->setToolTip(i18nc("About mouse action", "About")); m_triggerButton->setIcon(KIcon("input-mouse")); m_configButton->setIcon(KIcon("configure")); m_configButton->setToolTip(i18nc("Configure mouse action", "Configure")); m_clearButton->setIcon(KIcon("list-remove")); m_clearButton->setToolTip(i18nc("Remove mouse action", "Remove")); //HACK //FIXME what's the Right Way to do this? int row = layoutHack->rowCount(); layoutHack->addWidget(m_triggerButton, row, 0); layoutHack->addWidget(m_pluginList, row, 1); layoutHack->addWidget(m_configButton, row, 2); layoutHack->addWidget(m_aboutButton, row, 3); layoutHack->addWidget(m_clearButton, row, 4); //connect connect(m_pluginList, SIGNAL(currentIndexChanged(int)), this, SLOT(setPlugin(int))); connect(m_triggerButton, SIGNAL(triggerChanged(QString,QString)), this, SLOT(changeTrigger(QString,QString))); connect(m_configButton, SIGNAL(clicked()), this, SLOT(configure())); connect(m_clearButton, SIGNAL(clicked()), this, SLOT(clearTrigger())); connect(m_aboutButton, SIGNAL(clicked()), this, SLOT(showAbout())); }