Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ LNK2019尝试在Qt中获取自定义窗口框架时出现问题_C++_Qt_Qml_Lnk2019 - Fatal编程技术网

C++ LNK2019尝试在Qt中获取自定义窗口框架时出现问题

C++ LNK2019尝试在Qt中获取自定义窗口框架时出现问题,c++,qt,qml,lnk2019,C++,Qt,Qml,Lnk2019,我想为我在Qt 5.4中使用QML制作的应用程序创建一个自定义窗口框架。在我的主项目上实现它之前,我在默认应用程序上尝试了以下操作: int main(int argc, char *argv[]) { QApplication app(argc, argv); //QQmlApplicationEngine engine; //engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); QDeclarativeVi

我想为我在Qt 5.4中使用QML制作的应用程序创建一个自定义窗口框架。在我的主项目上实现它之前,我在默认应用程序上尝试了以下操作:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    //QQmlApplicationEngine engine;
    //engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    QDeclarativeView view;
    viewsetWindowFlags(Qt::FramelessWindowHint
           | Qt::WindowSystemMenuHint
           | Qt::WindowMinimizeButtonHint
           | Qt::Window);
    view.setAttribute(Qt::WA_TranslucentBackground);
    view.setMaximumHeight(640);
    view.setMaximumWidth(350);
    view.viewport()->setAutoFillBackground(false);
    view.show();

    return app.exec();
}
这是
.pro
文件:

TEMPLATE = app

QT += qml quick widgets
QT += core gui widgets quick
QT += network

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)
错误:

main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QDeclarativeDebuggingEnabler::QDeclarativeDebuggingEnabler(void)" (__imp_??0QDeclarativeDebuggingEnabler@@QEAA@XZ) referenced in function "void __cdecl `dynamic initializer for 'qmlEnableDebuggingHelper''(void)" (??__EqmlEnableDebuggingHelper@@YAXXZ)

main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QDeclarativeView::QDeclarativeView(class QWidget *)" (__imp_??0QDeclarativeView@@QEAA@PEAVQWidget@@@Z) referenced in function main

main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl QDeclarativeView::~QDeclarativeView(void)" (__imp_??1QDeclarativeView@@UEAA@XZ) referenced in function main
我知道这与我的.pro文件有关,但在理解LNk错误方面不是很好,我尝试了不同的方法,但至今没有任何进展。如何修复此问题?

添加到pro文件:

QT += declarative

为了移植较旧的应用程序,qt声明性 模块在Qt 5中仍然可用,但已重命名为Qt Quick 1。 需要Qt Quick 1特定API的应用程序(例如。 QDeclarativeView或QDeclarativeItem与图形视图 集成)可以使用此模块。请注意,新的应用程序应该 改用新的Qt QML和Qt Quick模块

要使用QtQuick1模块,请在qmake.pro中添加“声明性” 文件:

所需的头文件可以包括如下内容:

#包括
#包括
此外:

以前在QtDeclarative模块中的所有类都已 移动到Qt-QML和Qt-Quick模块中,它们的类名 已更改以反映其新模块位置。类名 变化如下:

。。。QDeclarativeView->QQuickView

但是:

(Qt声明性模块仍然作为Qt提供给开发人员 Quick 1模块,如下所述。但是,它不应用于 新的应用程序。)


有关
Quick2
的问题,请查看并了解
QQuickView
@EdwardMckinzie的用法,也许我的回答也会对您有用:哈!再次感谢。顺便说一句,我现在想知道当在qmllol中按下一个按钮时,如何最小化窗口。如果你能给我指出正确的方向,我会非常棒。
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeItem>