Как отключить стандарнывй кружок QRadioButton?

Здравствуйте, помогите убрать стандарный индикатор, н олставить текст и выровнять его по центру

Часть кода :

// Макет для переключателей фильтров
    QHBoxLayout *filterButtonsLayout = new QHBoxLayout();
    filterButtonsLayout->setSpacing(5); // Расстояние между переключателями
    filterButtonsLayout->setContentsMargins(0, 10, 0, 0); // Устанавливаем отступ сверху




// Создаем группу для переключателей
    QButtonGroup *filterGroup = new QButtonGroup(this);

// Переключатели фильтров
    for (int i = 1; i <= 4; ++i) {
        QRadioButton *filterButton = new QRadioButton("FILTER " + QString::number(i));
        filterButton->setFixedWidth(102);
        filterButton->setStyleSheet(
                "QRadioButton {"
                "  color: #FFFFFF;"
                "  border: 1px solid #267189;"
                "  background-color: transparent;"
                "  border-radius: 5px;"
                "  padding: 5px 10px;"
                "  text-align: center;" // Выравнивание текста по центру
                "}"
                "QRadioButton:hover {"
                "  background-color: #267189;"
                "  color: white;"
                "}"
                "QRadioButton:checked {"
                "  background-color: #267189;" // Цвет для выбранного переключателя
                "  color: white;"
                "}"
                "QRadioButton::indicator {"
                "  width: 0px;"  // Скрываем индикатор переключателя
                "  height: 0px;" // Скрываем индикатор переключателя
                "}");

        filterButtonsLayout->addWidget(filterButton);
        filterButtonsLayout->setAlignment(Qt::AlignCenter);
        filterGroup->addButton(filterButton, i); // Добавляем кнопки в группу
    }

// Устанавливаем FILTER 1 как выбранный при старте
    filterGroup->button(1)->setChecked(true);

// Добавляем обработчик нажатия кнопок
    connect(filterGroup, &QButtonGroup::buttonClicked, this, [=](QAbstractButton *button) {
        // Получаем идентификатор кнопки
        int id = filterGroup->id(button);

        // Убираем видимость всех чекбоксов
        for (QCheckBox *cb: leftCheckBoxes) {
            cb->setVisible(false);
        }
        for (QCheckBox *cb: rightCheckBoxes) {
            cb->setVisible(false);
        }

        // Показываем чекбоксы в зависимости от выбранного фильтра
        switch (id) {
            case 1: // FILTER 1
                for (QCheckBox *cb: leftCheckBoxes) {
                    cb->setVisible(true); // Показываем чекбоксы для первого фильтра
                }
                for (QCheckBox *cb: rightCheckBoxes) {
                    cb->setVisible(true); // Показываем чекбоксы для первого фильтра
                }
                break;
            case 2: // FILTER 2
                for (QCheckBox *cb: rightCheckBoxes) {
                    cb->setVisible(true); // Показываем чекбоксы для второго фильтра
                }
                break;
            case 3: // FILTER 3
                // Показать чекбоксы для третьего фильтра, если нужно
                for (QCheckBox *cb: leftCheckBoxes) {
                    cb->setVisible(true); // Например, показываем только левые чекбоксы
                }
                break;
            case 4: // FILTER 4
                // Показать чекбоксы для четвертого фильтра, если нужно
                for (QCheckBox *cb: rightCheckBoxes) {
                    cb->setVisible(true); // Например, показываем только правые чекбоксы
                }
                break;
        }
    });


Как можно это сделать?
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
Самое простое, что приходит в голову - это сделать прозрачную картинку и поставить ее на отображение индикатора.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы