1 Star 0 Fork 0

fuchaow/Property-Editor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CIntegerProperty.cpp 2.26 KB
一键复制 编辑 原始数据 按行查看 历史
Shujaat 提交于 2019-10-27 19:22 . Add files via upload
#include "CIntegerProperty.h"
//#include "CPropertyEditor.h" // ?
#include <QDebug>
#include <QSpinBox>
CIntegerProperty::CIntegerProperty(const QByteArray &id, const QString &name, int value, int defaultValue, int min, int max):
CBaseProperty(id, name),
m_value(value),
m_defaultValue(defaultValue),
m_min(min), m_max(max)
{
setValue(m_value);
}
CIntegerProperty::CIntegerProperty(CBaseProperty *top, const QByteArray &id, const QString &name, int value, int defaultValue, int min, int max):
CBaseProperty(top, id, name),
m_value(value),
m_defaultValue(defaultValue),
m_min(min), m_max(max)
{
setValue(m_value);
}
void CIntegerProperty::setValue(int value)
{
m_value = value;
CBaseProperty::setValue();
//qDebug() << "CIntegerProperty::setValue() " << m_value;
}
int CIntegerProperty::getValue() const
{
// handle editor...
//m_value = text(1).toInt();
return m_value;
}
void CIntegerProperty::setRange(int min, int max)
{
m_min = min;
m_max = max;
CBaseProperty::setValue();
}
// event handlers
QVariant CIntegerProperty::getVariantValue() const
{
return m_value;
}
void CIntegerProperty::displayValue()
{
setText(1, QString::number(m_value));
}
void CIntegerProperty::validateValue()
{
if (m_value < m_min)
m_value = m_min;
if (m_value > m_max)
m_value = m_max;
}
QWidget *CIntegerProperty::createEditor() const
{
return new QSpinBox();
}
void CIntegerProperty::valueToEditor()
{
QSpinBox* spinEditor = dynamic_cast<QSpinBox*>(getActiveEditor());
if (spinEditor != NULL)
{
spinEditor->setRange(m_min, m_max);
spinEditor->setValue(m_value);
}
}
void CIntegerProperty::valueFromEditor()
{
QSpinBox* spinEditor = dynamic_cast<QSpinBox*>(getActiveEditor());
if (spinEditor != NULL)
{
int newValue = spinEditor->value();
if (newValue != m_value)
{
setValue(newValue);
// emit valueChanged...
}
}
}
void CIntegerProperty::startEdit()
{
// qDebug() << "CIntegerProperty::onEdit()";
CBaseProperty::startEdit();
QSpinBox* spinEditor = dynamic_cast<QSpinBox*>(getActiveEditor());
if (spinEditor != NULL)
{
spinEditor->selectAll();
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fuchaow/Property-Editor.git
git@gitee.com:fuchaow/Property-Editor.git
fuchaow
Property-Editor
Property-Editor
master

搜索帮助