#include "waypointparamdialog.h" #include "ui_waypointparamdialog.h" #include #include WayPointParamDialog::WayPointParamDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), ui(new Ui::WayPointParamDialog) { ui->setupUi(this); setWindowFlag(Qt::FramelessWindowHint); setWindowFlag(Qt::SubWindow); // connect(ui->buttonBox, &QDialogButtonBox::accepted, this, [=](){ emit ok(); }, Qt::DirectConnection ); ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("ok")); ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("cancel")); connect(ui->buttonBox, &QDialogButtonBox::rejected, this, [=](){ isOk = false; emit cancel(); }, Qt::DirectConnection ); connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &WayPointParamDialog::acceptedSlot); connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &WayPointParamDialog::setButtonString); } WayPointParamDialog::~WayPointParamDialog() { delete ui; } void WayPointParamDialog::setlngLat(double lng, double lat) { this->longitude = lng; this->latitude = lat; ui->dSpinLongitude->setValue(lng); ui->dSpinLatitude->setValue(lat); } void WayPointParamDialog::setButtonString() { QPushButton *btn = ui->buttonBox->button(QDialogButtonBox::Cancel); btn->setText(tr("delete")); disconnect(ui->buttonBox, &QDialogButtonBox::accepted, this, &WayPointParamDialog::setButtonString); connect(ui->buttonBox, &QDialogButtonBox::rejected, this, [this](){ emit remove(); } ); } void WayPointParamDialog::acceptedSlot() { isOk = true; this->height = ui->dSpinHeight->value(); outsideRadius = ui->dSpinRadius->value(); direction = ui->comBoxDirection->currentIndex() == 0 ? 1 : -1; //方向,-1左盘旋,1右盘旋 longitude = ui->dSpinLongitude->value(); //经度 latitude = ui->dSpinLatitude->value(); //纬度 emit ok(); }