小编cho*_*syg的帖子

如何确定双重的最小显着变化

我有问题确定eps给定的双变量的最小值,v这样

v+eps != v
Run Code Online (Sandbox Code Playgroud)

请注意,这不是典型的问题表任务,因为它eps取决于任意数字v.

这不应该通过在for循环中寻找这个值来完成.有没有快速的方法来做到这一点,例如通过位移?独立于编译器,优化标志,平台......

谢谢你的回答

floating-point

7
推荐指数
1
解决办法
153
查看次数

QVariant与std :: shared_ptr

我有以下问题,我正在使用

Q_DECLARE_METATYPE( std::shared_ptr<int> );
qRegisterMetaType< std::shared_ptr<int> >();
QMetaType::registerComparators< std::shared_ptr<int> >();
Run Code Online (Sandbox Code Playgroud)

std::shared_ptr<int>与例如QListModel 一起使用.我需要一个行为

QVariant::fromValue( std::shared_ptr<int>( new int(5) ) ) == QVariant::fromValue( std::shared_ptr<int>( new int(5) ) )
Run Code Online (Sandbox Code Playgroud)

是真的.上面的代码在这里返回false,因为std::shared_ptr<int>::operator== ()比较了原始指针.是否可以注册标准运算符以外的比较器QMetaType::registerComparators

c++ qt

6
推荐指数
1
解决办法
2578
查看次数

QListWidget,其中项目可在项目单击时检查

我有一个带有可检查项目的 QListWidget,到目前为止它工作正常。现在我不仅想通过单击小复选框矩形来检查项目,而且还想通过单击项目本身来检查项目。

所以我实现了这个功能

void TagList::on_tagList_itemClicked(QListWidgetItem *item)
{
    if( item==nullptr )
        return;

    clicked_ = true;
    if( item->data(Qt::CheckStateRole) != Qt::Checked  )
        item->setData( Qt::CheckStateRole, Qt::Checked );
    else
        item->setData( Qt::CheckStateRole, Qt::Unchecked );
    clicked_ = false;
}
Run Code Online (Sandbox Code Playgroud)

(clicked_ 是我接下来描述的脏黑客的类变量。)

它设置了项目单击时的检查状态,但是现在项目不再可以通过单击复选框矩形来检查,因为它被 ListWidget 和我的插槽切换了两次。不幸的是,ListWidget 仅使用单列模型,因此我无法区分对复选框的点击和对模型索引对项目的点击。

然后我也实现了

void TagList::onModelItemChanged(QModelIndex tl, QModelIndex br, QVector<int> roles)
{
if( (roles.empty() || roles.contains(Qt::CheckStateRole)) && !clicked_ ){
    qDebug() << "changed with no click";
    clicked_ = true;
    if( tl.data(Qt::CheckStateRole)== Qt::Unchecked )
        ui->tagList->model()->setData(tl,Qt::Checked,Qt::CheckStateRole);
    else
        ui->tagList->model()->setData(tl,Qt::Unchecked,Qt::CheckStateRole);
    clicked_ = false;
}else{
    qDebug() << "changed after click";
} …
Run Code Online (Sandbox Code Playgroud)

c++ qt

6
推荐指数
2
解决办法
5001
查看次数

标签 统计

c++ ×2

qt ×2

floating-point ×1