问题标签 [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.

0 投票
1 回答
1173 浏览

drag-and-drop - 通过拖放从 Qt 5.2 应用程序复制文件到文件系统

如何在 Qt 5.2 应用程序中生成文件拖放操作,该应用程序在文件系统(Windows、Mac 等)中执行复制(或移动)?更具体地说:生成具有 1+ 个文件路径的拖动,当拖放到系统上时将对这些文件执行复制/移动。

是否有我可以使用的标准 mime 类型 - 提供文件路径作为 mime 数据?

0 投票
2 回答
7523 浏览

qt - 在 QML TableView 中单击时编辑数据(如 excel)

我有一些代码

为什么当我单击并编辑数据时,有时我的更改没有保存?也许有人对我的问题或代码有解决方案?我只想简单地编辑表格(如 Excel)。谢谢您的回复。

0 投票
1 回答
1638 浏览

opengl - QML:文本渲染问题

在 QML 中使用Text { ... }会给我带来奇怪的问题。在大多数笔记本电脑中它工作正常,但在某些笔记本电脑中缺少很多字符。例如,如果文本是"Abcdefgh",它可能会显示为"Ab e g ". 我不知道问题是什么。但是,如果我将renderType属性更改为Text {}Text.NativeRendering那么问题就会消失,但是在某些地方,某些字符会变得不可读/歪斜。QML 文本渲染是否存在问题或与 OpenGL 驱动程序、视频卡等有关?

同样在发生此问题的系统中,在应用程序启动期间会出现随机崩溃。可能是由于不同的问题,但只是想在这里写下来,以防有人知道崩溃和渲染问题之间存在关系。

可能是什么问题以及解决方案是什么?

{Qt/QML 5.2.0,MinGW 4.8,Win 7}

0 投票
0 回答
563 浏览

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 包期间,我遇到了以下问题。

  1. /usr/bin/ld:警告:libicui18n.so.51,/opt/Qt5.2.1/5.2.1/gcc_64/lib/libQt5Core.so.5.2.1 需要,未找到(尝试使用 -rpath 或 -rpath -关联)
  2. /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 touenum_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 tou_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 应用程序是否存在缺少依赖文件的问题?请调查这个问题,让我知道我做错了什么。

0 投票
1 回答
195 浏览

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.010.107.255.255

0 投票
0 回答
538 浏览

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 添加一些依赖项。有什么我错过的吗?. 请调查这个问题,让我知道我做错了什么。

谢谢

0 投票
1 回答
662 浏览

c++ - 手动停止 QDrag

当 dragEnterEvent 发生时,我需要停止 QDrag。我想在不释放鼠标按钮的情况下释放 QDrag。

我试图将事件发送到 QDrag,但没有成功。

如何做到这一点?

更新:我想在 QDragEvent 发生时释放鼠标。

我尝试了所有可能组合的每一行。请帮忙。

如何在 QDragEnterEvent 期间释放 QDrag。

0 投票
0 回答
580 浏览

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编译

谢谢!

-杰森

0 投票
1 回答
472 浏览

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}

0 投票
3 回答
6129 浏览

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: