Qt C++ 实现滑动开关组件:初始关闭,点击控制状态

以下代码演示使用 Qt C++ 设计一个简单的滑动开关组件,初始状态为关闭,通过点击按钮切换状态,并判断当前状态是开启还是关闭。

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>

class SwitchButton : public QPushButton {
    Q_OBJECT
public:
    SwitchButton(QWidget *parent = nullptr) : QPushButton(parent) {
        setCheckable(true);
        setChecked(false);
        setFixedSize(60, 30);
        setStyleSheet("QPushButton { border-radius: 15px; background-color: gray; }"
                      "QPushButton:checked { background-color: green; }");
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QWidget window;
    QVBoxLayout layout(&window);

    SwitchButton switchButton;
    layout.addWidget(&switchButton);

    QObject::connect(&switchButton, &SwitchButton::clicked, [&switchButton]() {
        if (switchButton.isChecked()) {
            qDebug() << "开启状态";
        } else {
            qDebug() << "关闭状态";
        }
    });

    window.show();

    return app.exec();
}

#include "main.moc"

这个滑动开关组件继承自 QPushButton,并设置了固定的尺寸和样式。通过设置 setCheckable(true)setChecked(false),将按钮设置为可选中状态,并初始状态为未选中。点击按钮后,通过 isChecked() 方法判断按钮的选中状态,从而确定滑动按钮是开启状态还是关闭状态。

Qt C++ 实现滑动开关组件:初始关闭,点击控制状态

原文地址: https://www.cveoy.top/t/topic/fAle 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录