首页 新闻 会员 周边 捐助

QT5.3.2 在Mac yosemite系统下,用macdeployqt 打包后,运行QSerialPortInfo::availablePorts()异常退出

0
悬赏园豆:40 [已关闭问题] 关闭于 2014-12-03 21:27
源代码我上传到了百度云
http://pan.baidu.com/s/1bnq5lJT

QSerialPortInfo 有2个静态方法,

QSerialPortInfo::standardBaudRates();获取可用波特率
QSerialPortInfo::availablePorts();获取可用串口

情景1,我在 按钮onclick 里面运行
QSerialPortInfo::standardBaudRates();
进入QT安装目录,运行
cd Qt5.3.2/5.3/clang_64/bin
./macdeployqt myApp.app -dmg
打开dmg后,点击onclick,可以获取可用波特率
 
情景2,我在onclick 里面运行一句代码
QSerialPortInfo::availablePorts();
进入QT安装目录,运行
cd Qt5.3.2/5.3/clang_64/bin
./macdeployqt myApp.app -dmg

打开dmg后,点击onclick,程序直接退出


为什么同一个类, 调用不同的方法, macdeployqt打包后,
获取  可用串口   无法运行,获取  波特率  可以运行呢?

如果是 打包后,类库没加载进去,也说不通啊。

我编译了QT 的QSerialPort 示例代码。在QT CReatetor里面可以运行,打包后,也无法运行。


是不是
QSerialPortInfo::availablePorts();在运行期间调用了其他的 未知类库。 现在不知如何解决。请求帮助。
#include"testqtdeploy.h"
#include"ui_testqtdeploy.h"
#include<QtCore>
#include<QtSerialPort>
TestQtDeploy::TestQtDeploy(QWidget*parent):
QMainWindow(parent),
ui(newUi::TestQtDeploy)
{
ui->setupUi(this);
}

TestQtDeploy::~TestQtDeploy()
{
deleteui;
}

voidTestQtDeploy::on_pushButton_clicked()
{
//1 下面代码 打包后可以运行
QList<qint32>list2=QSerialPortInfo::standardBaudRates();
for(inti=0;i<list2.count();i++){
ui->Msg->appendHtml(QString("%1<br/>").arg(list2[i]));

}
//2 下面代码  打包后  无法运行
QList<QSerialPortInfo>list=QSerialPortInfo::availablePorts();
for(inti=0;i<list.count();i++){
  ui->Msg->appendHtml(list[i].portName()+":"+list[i].description());
}


}

voidTestQtDeploy::on_BtnClear_clicked()
{
ui->Msg->clear();
}




正定聚的主页 正定聚 | 初学一级 | 园豆:143
提问于:2014-11-26 18:25
< >
分享
所有回答(1)
0

此问题,是QT 自己的bug.  在5.4.0版本得到了解决。 此问题,整了三周。  最终知道是框架级别的bug.   

正定聚 | 园豆:143 (初学一级) | 2014-12-03 21:26

你最后怎么解决的,我也遇到这个问题了

支持(0) 反对(0) 记忆斑驳的时光 | 园豆:137 (初学一级) | 2015-07-17 11:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册