【问题标题】:Qt 5.2 cannot get qWait function to workQt 5.2 无法让 qWait 函数工作
【发布时间】:2014-11-12 05:39:44
【问题描述】:

我有一个包含以下内容的头文件:

#include <QtTest/QtTest>

我正在尝试使用以下行在我的主窗口中生成非阻塞等待:

QTest::qWait(1000 - ui->speedDial->value());

我收到以下错误:

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl QTest::qSleep(int)" (__imp_?qSleep@QTest@@YAXH@Z) 在函数“void __cdecl”中引用QTest::qWait(int)" (?qWait@QTest@@YAXH@Z)

谁能帮助我了解我做错了什么,或提供替代方法?这些行独立于其他代码。

【问题讨论】:

  • 您是否在您的*.pro 文件中添加了QT += testlib?如果没有,添加它,再次运行qmake 并重建。
  • 我对使用 make 文件没有我应该熟悉的程度;话虽如此,按照您的指示,我现在有几个警告。该程序仍然无法编译。我做错了什么?
  • 你能看看我的回答吗?我发布了一个示例,其中qWait 工作正常。您可以将其作为示例并与您的代码进行比较,以了解它有什么不同。你也可以发布一些代码吗?这将帮助我弄清楚这个简单的Qt 示例无需任何特殊修改即可工作。

标签: c++ qt5.2


【解决方案1】:

它对我来说很好用。检查这个例子,它是Qt Test official documentation example的修改版本:

tutorial1.pro:

SOURCES = testqstring.cpp
CONFIG  += qtestlib

# install
target.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial1
sources.files = $$SOURCES *.pro
sources.path = $$[QT_INSTALL_EXAMPLES]/qtestlib/tutorial1
INSTALLS += target sources

symbian {
    TARGET.UID3 = 0xA000C60B
    include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
}
maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri)

symbian: warning(This example might not fully work on Symbian platform)
maemo5: warning(This example might not fully work on Maemo platform)
simulator: warning(This example might not fully work on Simulator platform)

testqstring.cpp:

#include <QtTest/QtTest>
#include <QDebug>

class TestQString: public QObject
{
    Q_OBJECT
private slots:
    void toUpper();
};

void TestQString::toUpper()
{
    QString str = "Hello";

    QTest::qWait(2000);

    QCOMPARE(str.toUpper(), QString("HELLO"));
}

QTEST_MAIN(TestQString)
#include "testqstring.moc"

【讨论】:

    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 2023-03-03
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    相关资源
    最近更新 更多