Qt5 Using QWidget with QtQuick2
Qt5 Using QWidget with QtQuick2
qt5和qtquick2的组合存在一些问题。每当您想使用一些基于Qwidget的类别中的某些类,您首先在以下问题上运行:
您应该使用QApplication
而不是QT5的QGuiApplication
。好吧,这可以很大变化,对
所以现在我使用的是QApplication
,但是每当我尝试使用基于QWidget的类时,我的程序崩溃或导致某些废话错误消息。
我应该如何使用QT5的旧Qwidgets? P.S。我正在为所有平台开发我的应用程序。
我还使用自动生成的qtquick2applicationviewer类来渲染基于qtquick 2.0的应用程序。
在qt 5.1中(大概从现在开始)您应该使用qwidget :: createwindowcontainer。您的应用程序应该是基于Qwidget的应用程序,并将QML放入Qwidgets中。不支持将Qwidgets放入QML应用程序中。请参阅此博客条目。
如果您有一个表单类,并且要将QML放入容器小部件中。
如果您有此QML:
import QtQuick 2.0
Rectangle {
property alias text: textItem.text
width: 156
height: 35
Text {
width: 150
height: 20
text: qsTr("Hello World")
id: textItem
}
}
在称为myqml.qml的文件中,然后将其路径放入资源文件的QML前缀。
然后放入构造函数:
ui->setupUi(this); // as normal
QQuickView* view = new QQuickView();
QWidget* widget = QWidget::createWindowContainer(view, ui->container);
view->setSource(QUrl("qrc:/qml/myqml.qml"));
if(view->status()!=QQuickView::Ready)
qDebug("can't initialise view");
widget->setMinimumSize(500,100);
QQuickItem* container = view->rootObject();
然后,当您要与QML互动时:
container->setProperty("text", "Hello alternate universe");
这似乎是一个已知的错误:https://bugreports.qt.io/browse/qtbug-25643
似乎也有可能的解决方案/解决方案的链接,但我没有检查它们。
关于Qwidgets和"它们不是最好的解决方案":首先,直到将来的QT 5.1(或将来将是哪个版本)使用完整的桌面QT快速组件,它们是常规桌面应用程序的唯一明智选择根据定义,唯一的选项是最佳选择;)
,即使在将来的Qwidgets也是QT5应用程序的100%有效选择。唯一与他们在一起的是,它们不太可能发展太多,因此您现在拥有的是您与他们在一起的最好的。如果很好,那么它们是选择的解决方案。
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Inference pytorch C++ with alexnet and cv::imread image
- Pybind11: init<> with lambda
- Qt5 Using QWidget with QtQuick2