我有一个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?
我在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.