小编gro*_*ner的帖子

QVariant :: isNull()和自定义类型

我可以以某种方式QVariant::isNull()与自定义Q_DECLARE_METATYPE()类型一起使用吗?

例如,如果我为整数定义了此类包装器类(为什么要这样做,但这应该是一个最小的示例)。定义bool isNull() const成员函数没有帮助:

#include <QVariant>
#include <QDebug>

class Integer {
    bool null;
    int x;
public:
    Integer() : null(true), x(0) {}
    Integer(int x) : null(false), x(x) {}
    int value() const {
        return x;
    }
    bool isNull() const {
        return null;
    }
};
Q_DECLARE_METATYPE(Integer)

int main()
{
    Integer x(42);
    Integer y(0);
    Integer z;

    qDebug() << x.isNull() << QVariant::fromValue(x).isNull();
    qDebug() << y.isNull() << QVariant::fromValue(y).isNull();
    qDebug() << z.isNull() << QVariant::fromValue(z).isNull(); // Not as expected!
}
Run Code Online (Sandbox Code Playgroud)

输出:

false …
Run Code Online (Sandbox Code Playgroud)

c++ qt

5
推荐指数
1
解决办法
3344
查看次数

为什么我不能从GridViewRowPresenterBase派生出来?

为什么我不能从GridViewRowPresenterBase派生出来?

public class GridViewRowPresenterEx : GridViewRowPresenterBase
{
    protected override void OnColumnPropertyChanged(GridViewColumn c, string s)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下编译错误:

'GridViewRowPresenterEx'不实现继承的抽象成员System.Windows.Controls.Primitives.GridViewRowPresenterBase.OnColumnPropertyChanged(System.Windows.Controls.GridViewColumn,string)'

'GridViewRowPresenterEx.OnColumnPropertyChanged(System.Windows.Controls.GridViewColumn,string)':找不到合适的方法来覆盖

.net c# wpf

3
推荐指数
1
解决办法
85
查看次数

标签 统计

.net ×1

c# ×1

c++ ×1

qt ×1

wpf ×1