我正在使用QML编写应用程序。当我按非整数因子缩放我的GUI时,我遇到了麻烦。Accordingtothedocs,Qt::AA_EnableHighDpiScaling应该启用与设备无关的像素,因此自动处理大部分缩放:TheapplicationattributeQt::AA_EnableHighDpiScaling,introducedinQt5.6,enablesautomaticscalingbasedonthepixeldensityofthemonitor.在blogpostabout5.6中,他们承认可能存在问题:Q:Arenon-integerscalefactorss
我确实需要让我的窗口在Windows上保持在顶部,但Windows本身似乎并不需要willingtoallowme做这个。我无法使用设置注册表值的解决方法,因为我无法要求用户注销/登录。此外,我使用QML和QWidget::raise()andQApplication::setActiveWindow()的解决方案似乎也不起作用,因为我没有设法使用以下代码将QML根对象作为QWidget指针获取:QWidget*mainWin=qobject_cast(engine.rootObjects().at(0));if(mainWin){mainWin->raise();QApplicati
我正在努力使用自定义QML模块。奇怪的是,当我在Linux(Ubuntu)上构建和运行时它可以正常工作,但是当我在Windows上构建和运行时,出现以下运行时错误ModulejbQuick.Chartsisnotinstalled.我的根项目目录包含一个文件夹qml/jbQuick/Charts,其中包含qmldir和QML文件。在.pro文件中添加QML目录:QML_IMPORT_PATH=qml在main.cpp文件中添加qml目录:QQmlApplicationEngineengine;engine.addImportPath(QStringLiteral("jbQuick/Ch
我制作了一个小型QML应用程序,我必须在Windows上部署它。我在Release模式下编译了它。我不习惯在Windows上部署,在我的文件旁边添加了很多dll之后(感谢dependencywalker),它没有启动。我添加了另一个(显然)不需要的dll,应用终于启动了。但它会启动一个空窗口。我做错了什么?我怎样才能让它发挥作用? 最佳答案 问题是您的应用程序必须附带QML文件和所有需要的图标。最简单的解决方案是将所有qml和图标文件放在Qt资源文件(.qrc)中,然后简单地做一个C++启动器从qrc加载QQuickView:#in
我有一个问题,我完成了一个应用程序的开发,iddeployforwindowsXpandlater,但我不能让他们继续工作,我基本上得到一个错误,当打开应用程序时出现一条消息,并说“类型ComboBox不可用”并说“.../ComboBox.qml插件无法为模块QtQuick.Controls.Private加载,无法加载库.../qtquickcontrolsprivateplugin.dll”,我还说,我把QtQuick和QtQuick.2目录在main.exe的同一目录中,也发送相同的消息,重复CheckBox组件。我放了一张情况图。注意*当我写“...”时,它是文件路径的缩写。
我开始了一个只有C++代码的Qt项目,此时一切正常。这是我的配置以及部署可执行文件所遵循的步骤:在Windows1064位、x64处理器、联想Thinkpad平板电脑上编程。使用Qt5.9框架和MinGW32bit编译器。(1)我首先构建项目并在我的构建目录的副本上启动windeployqt.exe。(2)然后,我将每个DLL和可执行文件放入一个Wix项目中,以制作一个MSI包。据我所知,此MSI安装程序的输出应该只是将文件复制到ProgramFiles目录,然后将正确的快捷方式添加到开始菜单和桌面.此时,一切正常。但几天后,QML代码被添加到项目中(因此一些OpenGL依赖插件)。我
我正在构建一个必须在Windows和MacOSX上运行的QML应用程序。我想在QML中管理菜单,所以我开始使用MenuBar我的应用程序中的组件。我在C++中使用QQuickView来显示我的QML元素。我的菜单在MacOSX上正确显示,但在Windows上没有显示任何内容,日志中也没有错误。文档中提到该组件链接到ApplicationWindow但由于它在MacOS上运行良好,我希望它在任何地方都能正常运行。有没有办法在Windows上解决这个问题? 最佳答案 QQuickView似乎无法包含ApplicationWindow作为
我使用无框窗口制作了一个QML应用程序,并自己实现了拖动和调整大小等操作。但是这种方式应用程序不支持本地窗口管理器功能,如windowsaerosnap或Gnome窗口管理器功能。所以我搜索并找到了this有人找到了一种使用win32API在无框架窗口中支持它们的方法。但是有没有一种方法可以将其与QML应用程序一起使用或以其他方式使用native窗口管理器功能?我使用以下代码从C++初始化窗口:QQmlApplicationEngineengine(QUrl("qrc:/qml/main.qml"));QObject*topLevel=engine.rootObjects().valu
我有TextField我想稍微改变行为的对象onTabPressed。我在用着Keys为此附加对象:Keys.onTabPressed:{model.item.value=text;}但是后来我失去了它的典型行为,无法在TextFields。在qtwidgets中,我会用类似returnQTextField::onTabPressed(event).是否有任何方法可以实现类似的事件传播到基类事件处理程序?换句话说,是否可以从派生类的同一函数中调用base类函数?看答案奇怪的是,我以为我已经检查过。解决方案是防止事件被接受的,然后自动传播,如图所示https://forum.qt.io/topi
我的应用同时使用C++和QML。我在C++部分定义了几个对象来访问SQL等。看起来像:classMyObject:publicQObject{Q_OBJECTpublic:MyObject(QObject*parent=0);Q_INVOKABLEvoidsomeFunction(constQString&query);};qmlRegisterType("xxx.xxx",1,0,"MyObject");理想情况下,我只需要在Javascript而不是QML中使用这些对象。我尝试了很多示例并阅读了所有文档,但仍然无法解决我的问题。所以我的问题:如何在Javascript中实例化C++