问题标签 [qt5.2]
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.
drag-and-drop - 通过拖放从 Qt 5.2 应用程序复制文件到文件系统
如何在 Qt 5.2 应用程序中生成文件拖放操作,该应用程序在文件系统(Windows、Mac 等)中执行复制(或移动)?更具体地说:生成具有 1+ 个文件路径的拖动,当拖放到系统上时将对这些文件执行复制/移动。
是否有我可以使用的标准 mime 类型 - 提供文件路径作为 mime 数据?
qt - 在 QML TableView 中单击时编辑数据(如 excel)
我有一些代码
为什么当我单击并编辑数据时,有时我的更改没有保存?也许有人对我的问题或代码有解决方案?我只想简单地编辑表格(如 Excel)。谢谢您的回复。
opengl - QML:文本渲染问题
在 QML 中使用Text { ... }
会给我带来奇怪的问题。在大多数笔记本电脑中它工作正常,但在某些笔记本电脑中缺少很多字符。例如,如果文本是"Abcdefgh"
,它可能会显示为"Ab e g "
. 我不知道问题是什么。但是,如果我将renderType
属性更改为Text {}
,Text.NativeRendering
那么问题就会消失,但是在某些地方,某些字符会变得不可读/歪斜。QML 文本渲染是否存在问题或与 OpenGL 驱动程序、视频卡等有关?
同样在发生此问题的系统中,在应用程序启动期间会出现随机崩溃。可能是由于不同的问题,但只是想在这里写下来,以防有人知道崩溃和渲染问题之间存在关系。
可能是什么问题以及解决方案是什么?
{Qt/QML 5.2.0,MinGW 4.8,Win 7}
icu - 在制作 QT 5.2.1 应用程序的 .deb 包以在 Ubuntu 14.04 上部署时遇到问题
我想为 ubuntu 14.04 64 位的 QT 5 .2.1 桌面应用程序制作 .deb 包。我已经在 Ubuntu 14.04 上安装了 QT 5.2.1 并制作了一个演示应用程序,用于我使用 Qt webkitwidgets 的测试目的。在制作应用程序的 .deb 包期间,我遇到了以下问题。
- /usr/bin/ld:警告:libicui18n.so.51,/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1 需要,未找到(尝试使用 -rpath 或 -rpath -关联)
- /usr/bin/ld:警告:libicuuc.so.51,/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1 需要,未找到(尝试使用 -rpath 或 -rpath -关联)
/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1:未定义引用ucal_openTimeZones_51'
/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1: undefined reference to
uenum_next_51' /opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1 :对 ucnv_getStandardName_51'/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1 的未定义引用:对ucol_strcoll_51 ucal_clone_51'
/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1: undefined reference to
'/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core 的未定义引用ucol_close_51'
/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1: undefined reference to
.so.5.2.1:未定义引用ucnv_getMaxCharSize_51'
/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1: undefined reference to
u_strToLower_51' /opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1:未定义引用 `ucnv_getAvailableName_51'
还有更多未定义的参考错误.......
我发现 Qt5 webkitwidgets 引用了 Ubuntu 中的 icu 库,这些错误是由于 Qt5 webkitwidgets 依赖于 QT 5 中的 icu 库。
这些 icu .so 文件位于机器中的路径 /opt/Qt5.2.1/5.2.1/gcc_64/lib/ 中,但在 .deb 打包期间未引用这些文件。
我从链接http://download.icu-project.org/file...-RHEL6-x64.tgz下载并安装了适用于 linux 的 icu 库到我的机器中并编译和构建 icu .so 文件并包含同样进入 .pro 文件。
icu .so 文件仍然存在链接问题。这个 icu 库适用于 Red Hat Enterprise Linux 6.2(x86 64 位)gcc 4.4.6,因为我在 Ubuntu 14.04 64 位上没有得到相同的库,所以我使用了它。
在 Ubuntu 14.04 中部署 QT 5.2.1 应用程序是否存在缺少依赖文件的问题?请调查这个问题,让我知道我做错了什么。
regex - 如何仅在正则表达式中允许“*”和数字:Qt5.2
我只想在我的 IP 地址中允许*
或编号。QLineEdit
我的正则表达式是:
QRegExp rx ( "^(0|[1-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))$" );
哪个是 find IP Address
,现在我想允许*
搜索 IP 范围的符号。
即10.105.*.*
这被10.107.*.*
视为10.105.0.0
10.107.255.255
deb - QT 5.2.1 应用程序在为 ubuntu 14.04 制作 .deb 包期间链接 libquazip.so 库时出现问题
我正在为 ubuntu 14.04 64 位的 QT 5 .2.1 桌面应用程序制作 .deb 包。我在 Ubuntu 14.04 上安装了 QT 5.2.1 并制作了一个演示应用程序,用于测试目的,我在其中使用了 quazip 库。在制作应用程序的 .deb 包期间,我遇到了以下问题。
dpkg-shlibdeps: 错误: 找不到 debian/demoapp/usr/bin/DemoApp1 所需的库 libquazip.so.1 (ELF 格式: 'elf64-x86-64'; RPATH: '') dpkg-shlibdeps: 警告:如果 debian/demoapp/usr/bin/DemoApp1 没有与 libz.so.1 链接(它不使用库的任何符号),包可以避免无用的依赖项 dpkg-shlibdeps: error: 由于上述错误而无法继续 注意:库不在没有任何 shlibs 或符号文件的其他二进制包中搜索。为了帮助 dpkg-shlibdeps 找到私有库,您可能需要使用 -l。dh_shlibdeps: dpkg-shlibdeps -Tdebian/demoapp.substvars debian/demoapp/usr/bin/DemoApp1 返回退出代码 2 make: *[binary-predeb-IMPL/demoapp] 错误 2 dpkg-buildpackage:错误:fakeroot debian/rules 二进制给出了错误退出状态 2 debuild:第 1364 行的致命错误:dpkg-buildpackage -rfakeroot -D -us -uc 失败
当我将 libquazip.so.1 复制到我机器中的路径 /usr/lib 时,我得到了以下问题。
dpkg-shlibdeps: 错误: 没有找到 /usr/lib/libquazip.so.1 的依赖信息 (debian/demoapp/usr/bin/DemoApp1 使用) dh_shlibdeps: dpkg-shlibdeps -Tdebian/demoapp.substvars debian/demoapp/usr /bin/DemoApp1 返回退出代码 2 制作:* [binary-predeb-IMPL/demoapp] 错误 2 dpkg-buildpackage:错误:fakeroot debian/rules 二进制给出错误退出状态 2 debuild:第 1364 行的致命错误:dpkg-buildpackage - rfakeroot -D -us -uc 失败
我的 cmakelist.txt 文件如下所示。
cmake_minimum_required(版本 2.8.9)
项目(DemoApp1)
设置(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} “;/opt/Qt5.2.1/5.2.1/gcc_64/lib/cmake;”)
find_package(需要 Qt5Widgets)
包含目录(/home/manojpatidar/Manoj/Work/QT_WORK/Linux_Package/demoapp-1.0/lib/quazip-0.5.1/quazip)
链接目录(/home/manojpatidar/Manoj/Work/QT_WORK/Linux_Package/demoapp-1.0/lib/quazip-0.5.1)
add_executable(DemoApp1 main.cpp mainwindow.cpp moc_mainwindow.cpp mainwindow.ui)
target_link_libraries(DemoApp1 quazip z)
install(TARGETS DemoApp1 RUNTIME DESTINATION bin)
qt5_use_modules(DemoApp1 小部件)
我的 Debian 控制文件如下所示。
来源:demoapp
部分:游戏
优先级:额外
维护者: Manoj Patidar
构建依赖:debhelper (>= 8.0.0)、cmake、qtbase5-dev、cdbs
标准版本:3.9.4
包:demoapp
架构:任何
取决于:${shlibs:Depends},${misc:Depends}
说明:说明
说明会来这里
我想我需要在 “Depends: ${shlibs:Depends}, ${misc:Depends}” 行中为 quazip 添加一些依赖项。有什么我错过的吗?. 请调查这个问题,让我知道我做错了什么。
谢谢
c++ - 手动停止 QDrag
当 dragEnterEvent 发生时,我需要停止 QDrag。我想在不释放鼠标按钮的情况下释放 QDrag。
我试图将事件发送到 QDrag,但没有成功。
如何做到这一点?
更新:我想在 QDragEvent 发生时释放鼠标。
我尝试了所有可能组合的每一行。请帮忙。
如何在 QDragEnterEvent 期间释放 QDrag。
c++ - Qt5.2/C++ 严重/致命错误检测
大家好,
我正在使用以下代码打开和显示 html 内容。
要复制到剪贴板,请将视图切换到纯文本模式
这是在 MyClass 内部,它设置自己的几何图形,并且此函数QWebView
适当地缩放以保持纵横比。删除mWidget(QWebView pointer)
MyClass 对象时将调用 的删除。以下是它的调用过程。
1.) MyClass 被实例化为“mclass”。
2.) 实例化后,在mclass对象上调用上面的playHtml方法
3.) 上面的 playHtml 方法获取位于独立文件夹中的 html 文件的完整路径,w/h 是用于缩放的 html 内容的预定尺寸
4.) 大约 25 秒后,mclass 对象被删除
4a.) 在这 25 秒内,playHtml 方法适当地缩放 html 内容,并加载 html 文件。动画等发生了很多javascript。
5.) 删除后发生 MyClass 的另一个实例化并重复该过程
这个过程一天可以重复3000次,一个接一个。在此期间,cpu 和 ram 均不征税。我在上面的过程中唯一遗漏的是日志记录。我安装了一个 MessageHandler 来记录 qDebug 和其他消息。
这是我在上述过程运行一段时间后(从几个小时到几天)在日志中看到的内容。
每个“MyClass”实例都有一堆这些:
然后是每个“MyClass”实例中的一堆:
紧随其后的是崩溃。
在事件查看器中,我收到崩溃“错误”消息。它始终位于这些故障模块之一 MSVCR100.dll 或 Qt5Webkit 或 Qt5WebkitWidget dll 之一中。
我没有专门画任何东西。我依靠 QWebView 来做到这一点——无论是绘制本身还是它包含的内容。除非上述情况开始发生,否则它做得很好。除了软件之外,机器上没有其他任何东西在运行。
如何检测这样的错误?在这一点上,在他们到达日志之前,我对他们一无所知。我想在那之前检测并处理它们,但不确定如何。作为旁注,我想借此机会了解更多关于 Qt 和 C++ 的一般错误检测的信息。首先,我如何检测似乎在食物链上游发生的此类错误。我担心我被 Java/C# 提供的堆栈跟踪宠坏了。
环境信息:
- Windows 7 专业版 64 位
- Qt 5.2.1(32 位)
- 使用VS2010编译
谢谢!
-杰森
c++ - QML 未能检测到在 C++ 中破坏的 QObject
提供的代码执行以下操作:
<1> 创建 QObject 派生类的对象并将其暴露给 QML
<2> 该类有一个指向另一个 QObject 派生类的指针,并且 QML 可以通过 Q_PROPERTY 访问该指针。
<3> QML 中的 MouseArea 检测用户点击并简单地询问 c++ 代码以删除指针。
<4> 一旦检测到,矩形颜色变为黑色。
问题是,虽然某些方法检测到 c++ 对指针的删除,但其他方法却没有。
查看内联注释:
(1) 和 (1b) 作品的结合
(1) 和 (1d) 的组合不起作用
(2) 单独起作用,但 (3) 单独不起作用。
当一切正常时,您应该看到 Rectangle 的颜色从黄色变为黑色。
有人可以解释这种行为吗?
CPP代码:
QML 代码:
使用:{Qt/QML 5.2.0, Win 7, MinGW 4.8, QtQuick 2.0}
c++ - Qt Creator没有名为stackedWidget的成员
我刚刚在 QT-Creator 中设计了我的 ui,由于主应用程序基于两个面板,我决定使用 StackedWidget 来“更改布局”而不打开新窗口。
所以,我添加了一个名为:stackedWidget(默认)的 QTStackedWidget。
问题出在 mainwindow.cpp 中,我添加了一个自定义 SLOT,其中包含:
当我构建它时,编译器说:
mainwindow.cpp:25:错误:'Ui::MainWindow'
ui->stackedWidget->setCurrentIndex(1) 中没有名为 'stackedWidget' 的成员;
~~ ^
同样在 qt-creator 本身中,我无法将信号附加到stackedWidget,因为它没有向我显示setCurrentIndex SLOT ...
有什么建议吗?
请注意,我是 C++ 的菜鸟,几年前我刚刚使用 Qt 和 PyQt4。
主窗口.h:
主窗口.cpp: