我一直在尝试使用Qt Quick Application在Qt Designer中创建一个简单的测试应用程序。但是,当我运行它时,我在Qt Designer中实现的任何内容都不会显示。例如,“Testing Qt Designer”文本没有显示,因为我在设计器中实现了它。我试图清理构建,并再次构建它。我还删除了整个构建文件夹并尝试再次构建它,但是这不起作用。任何人都可以帮助我让Qt Designer工作吗?
我在Windows 8.1 64位上使用Qt Creator 5.3。
main.qml:
import QtQuick 2.2
import QtQuick.Controls 1.1
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
menuBar: MenuBar {
Menu {
title: qsTr("File")
MenuItem {
text: qsTr("Exit")
onTriggered: Qt.quit();
}
}
}
Text {
text: qsTr("Hello World")
anchors.centerIn: parent
}
Text {
id: text1
x: -258
y: -151
width: 264
height: 76
text: qsTr("Testing Qt Designer")
font.pixelSize: 25
}
}
main.cpp中:
#include <QApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
return app.exec();
}
testApp5.pro:
TEMPLATE = app
QT += qml quick widgets
SOURCES += main.cpp
RESOURCES += qml.qrc
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
# Default rules for deployment.
include(deployment.pri)
deployment.pri:
android-no-sdk {
target.path = /data/user/qt
export(target.path)
INSTALLS += target
} else:android {
x86 {
target.path = /libs/x86
} else: armeabi-v7a {
target.path = /libs/armeabi-v7a
} else {
target.path = /libs/armeabi
}
export(target.path)
INSTALLS += target
} else:unix {
isEmpty(target.path) {
qnx {
target.path = /tmp/$${TARGET}/bin
} else {
target.path = /opt/$${TARGET}/bin
}
export(target.path)
}
INSTALLS += target
}
export(INSTALLS)
答案 0 :(得分:0)
我最近遇到一个奇怪的问题,看起来基于qrc的部署失败了;更改的文件不会导致运行rcc,因此您的应用程序不会反映您所做的更改。似乎与QTBUG-13334类似。
您可以通过编辑器或设计器更改QML文件,然后检查Compile Output
窗口来验证是否遇到此问题。如果你看到像
mingw32-make[1]: Nothing to be done for 'first'.
即使在部署之前进行了更改,您也可能会遇到此问题。
尝试转到Projects > Run
,在Deployment
下,点击Add Deploy Step
,然后选择Make
。在Make arguments
字段中,键入&#34; clean&#34;。然后添加另一个Make
部署步骤,这次没有参数。这将强制每次运行应用程序时重建项目 - 对于小型项目来说并不是一件大事。
请注意,如果您希望多次重新运行应用程序,Application Output
窗口中的plain green arrow将直接运行应用程序的可执行文件,绕过任何部署步骤。