即使在我的.pro文件中包含“testlib”包(用于qWait())之后,如何避免Qt应用程序中的控制台窗口?

时间:2010-08-10 04:40:47

标签: qt qt4

大家好,

我在这个主题上经历了各种各样的线索,但似乎没有解决我的特定问题。包括testlib,使控制台窗口出现,我没有找到任何选项来抑制这种行为。

但我的应用程序仍然要求testlib存在(因为我非常想使用QTest :: qWait()方法),并且没有出现控制台窗口。我从其他线程尝试了一些选项,但没有任何工作。即使在使用'testlib'后我该怎么做才能抑制这个控制台窗口?

我尝试的选项是

  1. 将CONFIG - = console添加到我的.pro文件中。

        QT += gui \    
            xml \
            core \
            testlib    
        CONFIG += qt \
            windows \
            uitools \
            release        
        CONFIG -= console        
        LIBS += extern/ftd2xx.lib        
        RC_FILE = res/AC-Core.rc        
        QMAKE_CXXFLAGS += -Wall \
    
  2. 编辑qmake.conf文件,行

    QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console, to    
    QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,windows
    
  3. 欢迎任何其他抑制控制台窗口出现的想法?

    谢谢!

1 个答案:

答案 0 :(得分:0)

您不必使用QTest来获取QTest::qWait()的功能。如果您查看qWait()的源代码,您可以看到它的工作原理并自行实现此功能:

inline static void qWait(int ms)
{
    Q_ASSERT(QCoreApplication::instance());

    QTime timer;
    timer.start();
    do {
        QCoreApplication::processEvents(QEventLoop::AllEvents, ms);
        QTest::qSleep(10);
    } while (timer.elapsed() < ms);
}