问题标签 [qt4.8]

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 投票
3 回答
518 浏览

c++ - QDataStream 有时使用 32 位,有时使用 40 位浮点数

我正在编写一个应用程序,该应用程序应该将浮点数组写入 WAVE 文件。我为此使用了 QDataStream,但这会导致我无法解释的非常不可能的输出。似乎 QDataStream 有时会选择 32 位浮点数,有时会选择 40 位浮点数。这会弄乱整个输出文件,因为它必须遵守严格的格式。

我的代码大致如下所示:

我想不出为什么这段代码会产生这样的副作用。所以我做了一个最小的例子来了解发生了什么。我用这个替换了for循环:

然后我使用 Matlab 打开输出文件并查看写入文件的字节。那些是:

我非常随意地选择了这些值,它们恰好具有这种效果。一些值导出为 4 字节,而另一些值导出为 5 字节数字。有谁知道这可能是什么原因?

编辑: 当检查两个花车的大小时,它们看起来确实有 4char秒长,不过:

0 投票
0 回答
1114 浏览

qt - 停止 QAudioOutput 的正确方法(或错误?)

(在 Qt 4.8.2 4.8.3、Qt MultimediaKit 1.2、Linux 下(编辑:Kubuntu 12.10、qt from packages)

我有一个QAudioOutput,它每 20 毫秒输入一次数据。如果我通过::stop() 停止它,它会发出stateChanged()信号,表明它已停止(立即;它的线程与控制线程相同。即使它们都在 GUI 线程中或两者都存在,症状仍然存在在另一个)。

然后我将其删除,但每 10 次尝试中会出现一次或两次崩溃,并出现以下回溯:

这似乎是某种仍在尝试访问旧QAudioOutput的脉冲线程(没有运气)。通过信号/插槽,这应该是线程安全的(根据QObject::~QObject,我从控制线程中删除它并没有做错任何事情(由外部信号调用,而不是通过QAudioOutput的信号顺便说一句)。

即使我调用deleteLater()也会发生崩溃。我做错了什么,或者这可能是 Qt 中的错误?如果这是一个错误,我的理论是它没有获得更多数据,这会导致带有BufferUnderflow错误的空闲状态,该错误来自没有正确同步的 Pulse。作为一种解决方法,我将停止喂它并在停止之前等待空闲,但我仍然不明白这种崩溃是如何发生的。

编辑:工作示例(更改一个简单的 gui 应用程序)

在实际应用中会发生 VoIP 呼叫;大多数时候它关闭正常,但有时它会崩溃。以下示例尝试模拟单个 20ms 数据包播放(之前音频初始化,之后音频停止;我们等待 22ms 使缓冲区下溢/状态更改为空闲,在我看来这是关键。崩溃本身确实由于时序值低(它只是有助于更快地崩溃)而不会发生,在生产代码中它可能会因实际调用而崩溃。)

主窗口.h主窗口 .cpp

附加项目文件:

0 投票
2 回答
5764 浏览

python - 使用 Pyinstaller 2.0、PySide 1.1.2 Bindings 和 Qt 4.8 时如何在应用程序中包含图标

什么脚本看起来像 what_it_looks_like

工作应用程序应该是什么样子

在此处输入图像描述

在发布之前,我查看了以下问题并尝试将其用作使我的脚本正常工作的指南,但它的用处不大

PyInstaller 不会将 PyQt 的图像加载到 GUI

它所做的最好的是将我的图标包含在结果目录中,如下所示

(图标包括这里的图片)

下一个我什至不知道它在说什么,但如果我知道它实际上在做什么,我觉得它可以解决我的问题, 使用 PyInstaller (--onefile) 捆绑数据文件

我有 rtfm,不幸的是,其中大部分都超出了我的想象。我认为与我的问题有关的以下部分

http://www.pyinstaller.org/wiki/Recipe/CollectDatafiles

我不知道如何在我的规范文件中实际实现它

以下 http://www.pyinstaller.org/export/v2.0/project/doc/Manual.html?format=raw#accessing-data-files也是如此

访问数据文件

我已经完成了以下及其变体,包括使用 -F 参数

我使用 pyside-uic.exe 将我的 mainWindow.ui 文件转换为 mainGui.py 文件

然后使用 pyside-rcc.exe 将 icons.qrc 转换为 icons_rc.py 进行转换

(注意:我在将最初位于 PySide 文件夹中的 exe 副本放入我的路径中的 C:\Python27\Scripts 文件夹后转换了文件,以便我可以从任何地方调用它)

我将我的图标存储在图标文件夹中

为了使用 Pyinstaller 在我的控制台中制作可执行文件,我使用了以下命令来制作我的规范文件

C:\Pyinstaller-2.0> python utils\Makespec.py --windowed --name="16TangoTest" C:\Exmake\16MainWindowVideo.py

制作规范文件后,我将其从 pyinstaller 文件夹中剪切,并将其添加到我的 Exmake 文件夹中

然后我修改它以包含我的图标文件夹使用

树(C:\Exmake\icons),并将其附加到 a.binaries 上方的行中收集

上面的手册和第一个答案表明我必须修改我的规范文件,以便 pyinstaller 看到/找到我的图标,如下图所示 修改规范

它所做的只是将我的图标包含在 dist 目录中,而应用程序仍然没有像上面的第一张图片那样显示它们

然后我通过在控制台 C:\Pyinstaller-2.0>python pyinstaller.py C:\Exmake\16TangoTest.spec 中运行以下命令来制作可执行文件,这使得您在第一张图片中看到的文件夹包含在内,但文件夹,但不是运行时的应用程序

0 投票
1 回答
1292 浏览

macos - 使用 Mac OS X 应用程序部署 Qt - 如何不加载任何插件?

我想将 Qt 4.x 共享库与我的应用程序一起打包,这样用户就不必安装 Qt 框架。使用构建脚本,我正确修补了所有 Qt 依赖项,并确保/Library/Frameworks不再从我的 Qt 安装中加载任何依赖项(请参阅我的答案here)。

但是现在我遇到了问题,因为在初始化期间的某个时刻,插件/Developer/Applications/Qt/plugins/bearer/libqcorewlanbearer.dylib被加载:

该插件引用了全局安装的 Qt 框架,然后我基本上加载了两组 Qt 二进制文件,导致各种麻烦。

现在我的问题是:该插件在哪里加载(找不到任何包含“wlanbearer”的二进制文件)以及如何确保没有插件从我的应用程序中自动加载?

0 投票
0 回答
399 浏览

qt - QxtLogger(来自 libQxt)在应用程序输出中打印其消息

我正在使用 QxtLogger(来自 libQxt)来登录我们的应用程序。它在 Qt 4.7.3 上运行良好。

我最近更新到 Qt 4.8,从那时起来自 QxtLogger 的日志消息被打印在应用程序输出中。我没有将它安装为 QtMessageHandler,我无法指出确切的原因。

任何指针或解决方案都会非常有帮助..

0 投票
2 回答
3237 浏览

qt - 检测 hiDPI 模式

在 OS X 上使用 Qt 4.8.4 -桌面应用程序开发。我需要能够在绘画时检测我是否在 hiDPI 显示器(“视网膜”)上。有谁知道如何实现这一目标?

0 投票
2 回答
1439 浏览

windows - QT 使用操作系统自动启动应用程序

我仅在 Windows 8 中对此操作有问题。
这是在其他 Windwos OS (Win7/Vista/XP) 中工作的代码

来自 regesty 的值:"C:\Program Files (x86)\Appname\Appname.exe" -m
任何人都可以解释为什么这段代码不起作用?

0 投票
2 回答
274 浏览

qt - 在 SLOT 宏中使用 QString 作为参数

是否可以在 SLOT 宏中用作参数 QString ?PS。我的意思是一个简单的解决方案.. 不像 QMetaObject::connectSlotsByName()。

0 投票
2 回答
2438 浏览

qt - 带有 QT-Objekts 的 Qt 3D 数组,例如 QVector

如何仅使用 Qt-Objects 创建 3D 数组?该数组应该是一个 3D 整数数组。我试图在堆上创建一个标准的 3D 数组。在堆上分配内存工作正常。如果我想释放内存,我得到一个错误。

对于这个项目,我使用 Qt4.8 和 Qt-Creator 2.7.0。我使用 MSVC2010 编译器。

错误消息是:HEAP CORRUPTION DETECTED:在 0x006E3C0 的 Normal 块 (#31715) 之后。CRT 检测到应用程序在堆缓冲区结束后写入内存。

0 投票
2 回答
5837 浏览

sqlite - 从 QSqlQuery 检索行数,但得到 -1

我正在尝试获取 QSqlQuery 的行数,数据库驱动程序是 qsqlite

这里的查询是一个选择查询,但我仍然得到-1

如果我使用model->rowCount(),我只会得到显示的结果,例如 256,但 select count(*) 返回 120k 结果。

它有什么问题?