Top.Mail.Ru
Уведомления
Очистить все

readonly QSpinBox с работающими стрелками

(@elena26)
Level 1

Всем доброго времени!

У меня небольшая, но как мне кажется нетривиальная задача. Нужно запретить редактировать значение в QSpinBox через непосредственно ввод этого значения, но разрешить редактировать его через кнопки спинбокса. Хотела сделать так:

ui->testSpinBox->setReadonly(true);

Но в этом случае значение не редактируется и через кнопки тоже. Как можно не сильно усложняя добиться такого эффекта?

Цитата
Создатель темы Размещено : 03.11.2024 12:57
Метки темы
Aveal
(@aveal)
Top level Admin

Привет, нужно подкласс от QSpinBox создать, что-то из серии - extendedspinbox.h:

#ifndef EXTENDEDSPINBOX_H
#define EXTENDEDSPINBOX_H



#include <QSpinBox>



class ExtendedSpinBox : public QSpinBox
{
    Q_OBJECT
    
public:
    explicit ExtendedSpinBox(QWidget *parent = 0);
    ~ExtendedSpinBox();
    
private:

};



#endif // EXTENDEDSPINBOX_H

extendedspinbox

#include "extendedspinbox.h"
#include <QLineEdit>



ExtendedSpinBox::ExtendedSpinBox(QWidget *parent) :
    QSpinBox(parent)
{
    lineEdit()->setReadOnly(true);
}



ExtendedSpinBox::~ExtendedSpinBox()
{
    delete ui;
}

Соответственно readOnly выставляем только для lineEdit.

ОтветитьЦитата
Размещено : 05.11.2024 11:33
(@elena26)
Level 1

Добрый вечер! Перенесла в свой проект, работает в точности, как и было надо, спасибо!

ОтветитьЦитата
Создатель темы Размещено : 05.11.2024 18:13
Aveal
(@aveal)
Top level Admin

Запись от: @elena26

Добрый вечер! Перенесла в свой проект, работает в точности, как и было надо, спасибо!

Обращайся )

 

ОтветитьЦитата
Размещено : 06.11.2024 12:02
Поделиться: