小编Bob*_*bur的帖子

如何知道一个类是否继承了其他抽象类?

我有一个Draggable继承的抽象类QWidget.其他两个类继承Draggable:

             QWidget
                |
            Draggable (abstract)
              /   \
             /     \
          Class1  Class2
Run Code Online (Sandbox Code Playgroud)

在主窗口中,在鼠标按下事件时,我想知道被点击的孩子是否Draggable:

void MainWindow::mousePressEvent(QMouseEvent *event)
{
    QWidget *childWid = childAt(event->pos());
    if (!childWid)
        return;

    // if Draggable is not abstract I can do as below
    /*
    Dragable *obj = new Dragable;
    if (!childWid->metaObject()->inherits(obj->metaObject()))
        return;
    */
}
Run Code Online (Sandbox Code Playgroud)

我可以通过比较childWid->metaObject()->className()来检查Class1,Class2但是Draggable有很多孩子.所以我想知道如何判断孩子是否继承了Draggable

c++ qt

2
推荐指数
1
解决办法
91
查看次数

如何测量Qt中的函数运行时间?

我在Qt中调用了argon2 - 内存密集型散列函数并测量其运行时间:

...
QTime start = QTime::currentTime();
// call hashing function
QTime finish = QTime::currentTime();
time = start.msecsTo(finish) / 1000.0;
...
Run Code Online (Sandbox Code Playgroud)

在argon2库的测试用例中,时间以另一种方式测量:

...
clock_t start = clock();
// call hashing function
clock_t finish = clock();
time = ((double)finish - start) / CLOCKS_PER_SEC;
...
Run Code Online (Sandbox Code Playgroud)

我正在调用它们在测试用例中调用的函数.但我的数字增加了两倍(两倍慢).为什么?如何测量Qt中的函数运行时间?clock()实际测量的是什么?

env:virtualBox,Ubuntu14.04 64bit,Qt5.2.1,Qt Creator 3.0.1.

c++ qt clock time-measurement qtime

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

标签 统计

c++ ×2

qt ×2

clock ×1

qtime ×1

time-measurement ×1