这样的例子在网上有很多,就不写了。
这样写的话,会有一些东西需要了解。
子类化QThread的方法,只有run函数里面的内容是执行在子线程里的,其他的部分,比如槽函数什么的还是在主线程里执行(假设是在主线程开启的该子线程)。
还有一种方法,是子类化QObject,新建一个线程,然后使用MoveToThread把这个类的对象移到新建的线程中,这种做法使得它所有的槽函数都是执行在新开辟的线程里面。
如果直接(QObject对象).abc()的话,这个成员函数是在主进程内执行,可能会出现"QObject::killTimer: timers
cannot be stopped from another thread"的运行错误。
使用第二种方法的话,貌似会遇到这样的问题:如果在一个槽函数中把子线程阻塞,其他的槽函数无法接受来自主线程
Qt可以做一些常用的应用程序,如聊天系统、常见小游戏、常见管理系统等,Qt有很多成功的案例,如Linux桌面环境KDE、谷歌地图、网络电话、VLC多媒体播放器等 ,可以多看看网上的视频,比如黑马程序员的,我毕设都是按照他们项目更改的。这些简单问题他们也都有系统的解答。区别如下:- QTextStream一般用于 *** 作轻量级数据(int, double, QString), 数据写入文件中之后以文本的方式呈现。?
- QDataStream 通过数据流可以 *** 作各种数据类型, 包括类对象, 存储到文件中数据可以还原到内存(二进制)。?
- QTextStream, QDataStream可以 *** 作磁盘文件, 也可以 *** 作内存数据, 通过流对象可以将数据打包到内存, 进行数据的传输。
学习QT,可以看黑马程序员视频库的QT教程,老师讲解的很到位哦!当然,如果你想整体学习C++,黑马也是不错的选择!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)