#include #include #include #include #include class switchProductWidget : public QWidget { public: QLabel* staticLabel = new QLabel(this); int* currentProductIndexPtr; QHBoxLayout* layout = new QHBoxLayout(this); fancyButtonText* switchBtn = new fancyButtonText(100, 60, "修改", "修改当前机型"); QComboBox* productSelect = new QComboBox(this); QLabel* currentProduct = new QLabel(this); switchProductWidget() { currentProductIndexPtr = &bridge.currentProductIndex; QPalette palette; palette.setColor(QPalette::WindowText, Qt::white); QFont font("微软雅黑", 14, QFont::Bold); this->setLayout(layout); staticLabel->setText("当前型号:"); staticLabel->setFont(font); staticLabel->setPalette(palette); layout->addWidget(staticLabel); productSelect->addItem("产品1"); productSelect->addItem("产品2"); productSelect->setPalette(palette); productSelect->setFont(font); layout->addWidget(productSelect); productSelect->hide(); currentProduct->setText("产品1"); currentProduct->setFont(font); currentProduct->setPalette(palette); layout->addWidget(currentProduct); layout->addWidget(switchBtn); connect(switchBtn, &QPushButton::clicked, this, &switchProductWidget::startSwitch); connect(productSelect, &QComboBox::currentTextChanged, this, &switchProductWidget::currentProductSwitch); } private: int siwtchBtnState = 0; private slots: void startSwitch() { if(siwtchBtnState == 0) { currentProduct->hide(); productSelect->show(); switchBtn->setText("取消"); siwtchBtnState = 1; return; } else if (siwtchBtnState == 1) { currentProduct->show(); productSelect->hide(); switchBtn->setText("修改"); siwtchBtnState = 0; return; } } void currentProductSwitch(QString input) { int index = productSelect->currentIndex(); *currentProductIndexPtr = index; currentProduct->setText(input); startSwitch(); } }; #pragma once