为什么我的Qt应用程序在执行时不显示GUI?

Why doesn't my Qt application present a GUI when executed?

本文关键字:显示 GUI 执行 我的 Qt 应用程序 为什么      更新时间:2023-10-16

我收到了一个带有.pro文件的C++/C代码,要在Qt中编译(这是一个大而混乱的代码,所以我想使用Qt和提供的.pro文件)。

该代码旨在生成GUI。我可以在Qt中编译它,没有任何错误(在Mac OS X 10.7.5和Mac OS X 10.8上),我看到了可执行文件。然而,当我点击它时,什么也没发生。当我通过命令行以通常的方式运行它时,不会发生任何事情。以下是我正在尝试的运行命令:

/calc.app/Contents/MacOS/calc

执行官/calc.app/Contents/MacOS/calc(这会导致输出:[处理完成])。

在.pro文件(下面)中,我没有看到任何似乎表明我想要GUI的内容。然而,我在Qt帮助网站上看到,GUI模块不需要在.pro文件中指定,因为它是自动包含的。也许我误解了什么?

我的.pro文件有问题吗?

TEMPLATE = app
LANGUAGE = C++
TARGET = calc
VERSION = 3.1.0
CONFIG -= qt
CONFIG += warn_on
CONFIG += debug
#CONFIG += windows
CONFIG += console
DEFINES += IPMGEMPLUGIN
DEFINES += NOPARTICLEARRAY
!win32 {
DEFINES += __unix
}
GMS_CPP = ../GMS
GMS_H   = $$GMS_CPP
DEPENDPATH +=
DEPENDPATH += .
DEPENDPATH += $$GMS_H
INCLUDEPATH +=
INCLUDEPATH += .
INCLUDEPATH += $$GMS_H
QMAKE_LFLAGS +=
OBJECTS_DIR = obj
SOURCES      +=   main.cpp
include($$GMS_CPP/gms.pri)

我对Qt一无所知,当然我们也不知道你正在编译的特定应用程序,所以我能给你的帮助可能非常不准确。

然而,这就像拇指疼痛一样突出:

#CONFIG += windows
CONFIG += console

快速谷歌搜索表明,Qt确实支持控制台应用程序,也就是说,这些应用程序不创建GUI,而是充当控制台/终端/命令行工具。与您合作的那个似乎就是这样。假设应用程序甚至工作,它可能希望在命令行上将输入传递给它,并将产生某种类型的输出作为响应-但使用此配置,它将不会创建GUI。

我建议联系向您提供此申请的人员以获得进一步的支持。

CONFIG -= qt的基本意思是"目标不是Qt应用程序/库,不需要Qt库和头文件。"您应该删除这一行。来源:http://qt-project.org/doc/qt-4.8/qmake-variable-reference.html#config

此外,添加QT += core gui也没什么害处。这通常是自动为你完成的,但由于你有项目文件问题,这不会造成伤害。。。此外,请确保main.cpp的main方法以return a.exec();结束,并且aQApplication实例(Qt4.x)或QGUIApplication实例(Qt5.x)。main.cpp应该是一个简短的函数,用于创建主小部件或窗口,显示它,然后启动事件循环。

如果您的项目仍然无法正常工作,我强烈建议您放弃该项目文件。换句话说,我会下载Qt SDK的OS X包,创建一个新项目,然后将您的文件导入到新项目中。之后,我只从旧的.pro文件中提取必要的行,并将它们放在新的文件中,直到它工作为止(特别是,我注意到您有一些自定义的DEFINES += ...)。但是,所有这些建议都假定错误在项目文件中,而不是您的代码中