问题标签 [qt5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - 如何使用 Qt Quick 2.0 制作透明窗口
我已经知道如何使用 Qt Quick 1.0 制作透明窗口。但是我最近开始使用 Qt 5.0 和 Qt Quick 2.0 并且不知道如何使用它。
setAttribute setWindowFlags setStyleSheet
上述功能已从 QtQuick2ApplicationViewer(QQuickView) 中删除。所以我想知道我是否可以使用 Qt Quick 2 制作一个透明窗口(是否因为它基于 OpenGL?)。
qt - 为什么在链接此 Qt 5.0 应用程序时出现“对 vtable 的未定义引用...”错误?
我有一个使用 CMake 2.8.9 的相对简单的 Qt 5.0 项目:
CMakeLists.txt:
主窗口.h:
主窗口.cpp:
主.cpp:
该项目还包括一个.ui
使用 Qt Creator 2.6.1 (MainWindow.ui) 创建的文件。
当我尝试g++
在 Linux 上构建文件时,我收到以下错误:
什么可能导致这种错误?我最近从 CMake 切换到了qmake
,我从来不记得在编译一个简单的示例时遇到了这么多麻烦。我究竟做错了什么?
编辑:这是用于链接所有内容的命令:
c++ - 在 Qt 5.0 中向 QML 公开 QAbstractListModel 元素属性
我一直在松散地关注Christophe Dumez 博客上的文章,以获取自定义 QAbstractListModel 类,以将数据公开给 QML (QtQuick2) 接口 (QtQuick2ApplicationViewer)。但是,由于我使用的是 Qt 5.0.0(和 MSVC2012),因此他的文章中的某些部分不适用。例如,ListModel 构造函数不再需要调用setRoleNames()
,因为setRoleNames()
在 Qt 5 中已被贬低。
我的理解是,继承自 QAbstractListModel 的类只能定义roleNames()
,因为它在 Qt 5 中已更改为纯虚函数。所以在他的示例中,我只是在构造函数中注释掉setRoleNames(m_prototype->roleNames());
,一切都应该工作。正确的?
但是,当通过 QML 访问时,所有已定义的角色都是未定义的。我可以用这个检查 C++ 中的名称:
在这种情况下,Elephant 对象的角色名称按预期打印。
我的假设是否正确,或者我是否需要做其他事情才能让 QAbstractListModel 对象与 QML2 共享列表元素属性?这似乎是一个愚蠢的问题,但是 Qt5 文档现在很糟糕,我想不通。
谢谢!
qt - Qt5 和 Qt 4.8 中的模型和角色
今天我想稍微玩一下QtQuick2。所以我开始将非常简单的 Qt Quick1 应用程序移植到 Quick2。这个应用程序使用了一些模型。在 Qt5 中,模型无法按我的预期工作:我无法使用角色访问数据。
这是我的 QML 代码:
在 Qt4.8 中,我能够使用roleName
语法(在此 QML 中 my roleName= homm
)获取数据,但在 Qt5 中我不能。这就是控制台中写的内容:
这就是 Quick 1.1
如您所见,使用角色访问数据按预期工作。我为您创建了测试应用程序: 用于 Qt5和Qt 4.8。我希望你能帮助我找到物质的核心。
PS 我在 Qt5 版本中做了一些改动。在 Qt5 中,方法setRoleNames()
已过时,roleNames()
建议覆盖 of。我已经做到了这一点。
PPS 我的代码示例应该可以在 GNU/Linux x64 上编译
c++ - 使用 mingw 构建 Qt 5.0
有一些方法可以使用 mingw64 或 Visual Studio 2012 构建 Qt 5.0,还是我要等待下一个版本?我已经尝试在以下链接中使用 mingw64 构建 qt 5.0 的说明:http://qt-project.org/wiki/MinGW-64-bit但似乎我不适合我......有人编译了 Qt 5.0 mingw64(或 Visual C++ 2012)?
qt - 如何在 Qt WebView 中显示嵌入的 html
我试图让 Qt WebView 显示一个嵌入为 Qt 资源的 html 文件,但我似乎无法让它工作。我创建了一个新的 Qt Quick 应用程序并添加了一个简单的 qml 文件:
然后我(使用设计器)创建了一个如下所示的资源文件:
并创建了一个简单的 test.html 文件(与 .qrc 文件在同一目录中):
结果只是一个空白的白色窗口。如果我http://www.stackoverflow.com
在 qml 文件中使用常规 url ( ) 作为它工作的 url - 将显示页面。如果我使用嵌入图像 ( qrc:/qt-project.org/mac/cursors/images/pluscursor.png
) 的名称,则会显示该图像。
在我看来,好像确实添加了html文件(至少在我枚举嵌入式资源时列出了它),但是我对Qt资源系统的理解有限,所以我很可能误解了一些基本的东西。
谁能告诉我我做错了什么?
更新:如果我尝试告诉 Web 视图也从 C++ 加载 url,我已经验证了行为是相同的。我还验证了资源确实是嵌入的——我可以使用 QResource 打开和读取资源。此外,这似乎并不特定于 Qt5:http://qt-project.org/forums/viewthread/18181 (有人对 Qt 4.8 有类似问题)。
c++ - 使用 Qt5 在 Windows 上获取 HWND(来自 WId)
我正在尝试将 Qt4 应用程序转换为 Qt5。我唯一想不通的是如何获取小部件的HWND。该程序使用EcWin7在 win 7+ 的任务栏图标上显示进度,但需要HWND。在将Q_WS_WIN更改为Q_OS_WIN后,lib 本身似乎可以正常编译)在 Windows 上的 Qt4 中,WId只是HWND的 typedef ,所以这没问题。在 Qt5 中,情况不再如此。我发现了一些可以提供线索的邮件列表发布,但似乎QPlatformNativeInterface不再是 Qt5 的公共 API 的一部分。
程序调用EcWin7.init(this->winId()); 我需要某种方式将此 ID 转换为HWND id 或其他方式来获取它。
c++ - Qt qrc 资源文件 - 无法加载图标
我有一个 Qt5 桌面项目,并使用 Qt Creator 编辑器添加了一个“resource.qrc”文件,该编辑器在项目的 .pro 文件中创建了以下行:
我放了一个空白前缀和一个 png 文件(14x14),并尝试像这样使用它:
问题是:图标不会出现!
以下作品:
所以问题一定出在资源嵌入过程中。我注意到生成的“exe”里面没有资源部分……我没有静态链接的外部库,所以我认为我不需要Q_INIT_RESOURCE(resource) 宏(它给了我未定义的外部)
更新:我在这里发布我的 qrc 文件:
这很简单,我不明白为什么在运行时图标没有出现
qt - QGraphicsProxyWidget 在 QGraphicsScene 中剪切了上下文菜单
以下代码基于 Graphics View Framework 的文档。我在 QGraphicsScene 中嵌入了 QLineEdit 并运行程序。当我右键单击场景中的行编辑时,我得到一个剪辑的上下文菜单。QGraphicsProxyWidget 的上下文菜单由场景绘制为子 QGraphicsProxyWidget,因此如果窗口太小,它会被剪裁。我希望所有嵌入式小部件都将它们的上下文菜单显示为顶级窗口,就像它们没有嵌入 QGraphicsScene 时一样。我以两种方式尝试了 BypassGraphicsProxyWidget 标志,但它没有按我的意愿工作。在 Linux 和 Windows 上的 Qt 4.8 / 5.0 上测试。所有平台上的相同问题。
如何使嵌入式小部件显示具有本机外观的普通顶级上下文菜单?重载 QGraphicsView 的 contextMenuEvent 会提供一个原生的顶级上下文菜单 - 我可以做某种委托并让 QGraphicsView 在场景中显示嵌入式小部件的上下文菜单吗?
c++ - QApplication::sendEvent() 到 QListView 崩溃应用程序
通过 QApplication::sendEvent() 向 QListView 发送事件时,我的应用程序崩溃。
有人知道原因吗?