gpt4 book ai didi

Qt5 - 将简单的 Qt Quick 应用程序移植到 Qt5。需要帮助

转载 作者:行者123 更新时间:2023-12-04 21:20:02 24 4
gpt4 key购买 nike

我正在尝试将一个简单的 Qt Quick 应用程序从 Qt4.8 移植到 Qt5.0beta。
我的初始(Qt4.8)代码类似于以下内容:

main.cpp 将在具有半透明背景的无框窗口中显示 QDeclarativeView

#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"
#include <QtDeclarative>
#include <QDeclarativeContext>

Q_DECL_EXPORT int main(int argc, char *argv[])
{
QScopedPointer<QApplication> app(createApplication(argc, argv));

QmlApplicationViewer viewer;
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
viewer.setMainQmlFile(QLatin1String("qml/main.qml"));

viewer.setWindowFlags(Qt::FramelessWindowHint);

viewer.setAttribute(Qt::WA_TranslucentBackground);
viewer.setStyleSheet("background:transparent;");
viewer.setResizeMode(QDeclarativeView::SizeViewToRootObject);
viewer.showExpanded();

return app->exec();
}

而 main.qml 只会在另一个透明矩形内显示一个红色矩形。
import QtQuick 1.1

Rectangle {
width: 360
height: 360
color: "transparent"
Rectangle
{
x: 125
y: 122
width: 110
height: 116
anchors.centerIn: parent
color: "red"
radius: 27
}

Text {
color: "black"
text: qsTr("Press me!")
font.pointSize: 14
anchors.centerIn: parent
}

MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
}
}

为了使其与 Qt5 兼容,需要进行一些更改。
(我已关注 http://qt-project.org/doc/qt-5.0/portingqmlapp.html [qt-project.org]
以免错过任何东西)

现在 main.cpp 类似于:
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"
#include <QtWidgets/QtWidgets>
#include <QtWidgets/QLabel>

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

QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
viewer.setMainQmlFile(QStringLiteral("qml/main.qml"));
viewer.setWindowFlags(Qt::FramelessWindowHint);
viewer.showExpanded();


return app.exec();
}

在 main.qml 中只替换了一行。
import QtQuick 2.0

但我找不到保持透明度的方法
setAttribute(Qt::WA_TranslucentBackground);
setStyleSheet("background:transparent;");

setAttribute 和 setStyleSheet 可用于 QDeclarativeView(这是一个 QWidget)
但不适用于 QQuickView(这是一个 QWindow)

最佳答案

试试我的 QuickWidget,如果它对你有帮助:

http://code.google.com/p/quickwidget/

或者,更好的是,使用 QQuickWidget来自 Qt 5.3+ .

关于Qt5 - 将简单的 Qt Quick 应用程序移植到 Qt5。需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com