这里是一个使用Qt实现电子开关的示例类:
#include <QCheckBox>
#include <QWidget>
class ElectronicSwitch : public QWidget {
Q_OBJECT
public:
ElectronicSwitch(QWidget *parent = nullptr) : QWidget(parent) {
// 创建复选框对象
m_checkbox = new QCheckBox(this);
// 设置默认状态为关闭
m_checkbox->setChecked(false);
// 连接信号槽,当复选框状态改变时发送信号switched(bool)
connect(m_checkbox, &QCheckBox::stateChanged, this, &ElectronicSwitch::switched);
}
signals:
void switched(bool state);
private:
QCheckBox *m_checkbox;
};
使用该类时,可以将其放置在需要添加电子开关的地方,连接其switched(bool)
信号来响应开关状态的改变。
例如:
#include "ElectronicSwitch.h"
#include <QVBoxLayout>
#include <QWidget>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建主窗口和布局管理器
QWidget window;
QVBoxLayout layout(&window);
// 添加电子开关到布局中
ElectronicSwitch electronic_switch;
layout.addWidget(&electronic_switch);
// 连接电子开关的switched(bool)信号,并输出当前状态
QObject::connect(&electronic_switch, &ElectronicSwitch::switched,
[](bool state) { qDebug() << (state ? "ON" : "OFF"); });
window.show();
return app.exec();
}