QT问题总结

1、使用qmlRegisterType正确注册了类型,但是在qml内调用出错(linux下会提示cannot assign object to property)

解决:qml不是所有的元素都可以直接调用外部对象,ScrollView下就不行,使用Item来组织ScrollView里的内容,Item里面可以直接使用外部对象

2、使用QtXML不能读取或设置nodevalue的问题

解决:实际上这是没有弄清楚QtXML如何看待nodevalue的问题,虽然nodevalue仅仅是一行文本,但是QtXML仍然把它看为一个独立的子元素看待,这个子元素的类型是QDomText,解决方法很简单,假设当前节点名node是A(<A>b</A>)

node.firstChild().nodeValue可以取得当前文本b

node.firstChild().setNodeValue("c")可以设置当前节点A的节点值为c

3、关于QList removeOne出错的问题

请在对象内实现 == 重载,不然这个功能出错。

另外QT提供的removeAt等删除方式不太适合list这种数据结构,还是使用iterator来做比较安全

4、QSqlDatabasePrivate::addDatabase: duplicate connection name 问题:

解决:QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection'解决办法_奶爸的博客-CSDN博客 , 这里解释的很详细了

5、QFile在linux环境下,作为全局变量,或者静态变量,在类对象直接调用会崩溃,segnal fault错误,同样的windows环境是正常的

解决:不要作为全局变量或静态变量使用

6、QT/QML 发布windows程序,以下两个连接给了最完整的信息,照做即可

首先要运行一下windeployqt目录里的qtenv2.bat

Qt for Windows - Deployment | Qt 6.4

Deploy an Application on Windows - Qt Wiki

第二步,运行windeployqt.exe 程序名.exe/dll

- 如果包含多个文件,每个文件运行一次

- 更完整的发布文档:QT项目打包成软件进行发布的三种方式_qt 打包_程序员班长的博客-CSDN博客

7、QML程序有些win7下正常运行,有些不能正常运行,显卡驱动问题,需要支持OpenGL2.0

Qt 5 on Windows ANGLE and OpenGL - Qt Wiki

这里还有一个问题,如果你使用远程桌面的话,远程桌面的opengl版本不是实际显卡的版本,有可能造成远程桌面下不能运行QML程序(跟远程桌面下无法运行游戏一个道理),我注意到有些win7的电脑有这个问题,有些却没有。在接显示器的桌面环境下是正常的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值