来用Qt实现一个桌面弹幕程序吧



  • 前言

    为什么做? 因为有趣呀~

    最近一段时间呢,经常上 B站 的 杰洛君 看到 up主 们在直播的时候用一个桌面程序能在桌面上显示弹幕飞过,感觉非常有趣,于是就学着用Qt做了个桌面弹幕程序啦~

    接下来的日子就打算写文章记录这一过程,也算是巩固知识吧。

    这个是教程?

    这个能称之为教程吗? 并不,和你想象地不一样 杰洛君 不是精通Qt程序开发的人,相反是大菜鸟一个(杰洛君大失败 (T__T)) 不过还是觉得记录下来比较好,所以接下来的文章还请各路大神们多多指教啦 (^-^)V 啦啦啦~

    这也是杰洛君第一次在Qt dream写文章啦,不过接下来的文章不会那么死板的,因为我也不希望自己的文章写成API文档一样,希望其中你能感受到我的心意,杰洛君是很希望和大家交流滴(^o^)/。

    大坑慢填

    这个程序说大不大,说小又不小,因为完整的应用包括了 1.桌面端 2.服务端 3.网页端 甚至可能拓展到 利用QML 实现 Android端,当然那也要等到我学会才行呀 Kira☆~。

    写作压力好大呀,杰洛君大危机!即便如此我还是会慢慢把它写好,因为杰洛君的脑子不好使,拥有着YD(《电波老师》梗--不感兴趣的东西就没有动力做),所以真正把技术学到会用全凭兴趣。我会渣油完成这个坑。

    不看广告看疗效!

    程序的界面

    0_1456276667637_pic1.png

    大弹幕时代哦,你还在等待什么呢?

    0_1456276697936_pic2.png

    控制版面啦啦啦~

    0_1456276770196_IMG_20151114_203026.jpg

    晚会现场使用效果

    感觉如何?(快夸我快夸我)

    什么?!你说这个界面丑哭了?

    以玻璃心著称的杰洛君会去哭上两天的,毕竟杰洛君是来分享的,不是来羞耻play的(T__T)555。嘛嘛,界面不对你口味没关系,不要在意这些细节 Don't mind

    接下来……

    这个程序用到的技术包括 c++/Qt5,python/Tornado,以及Html等前端的一些东西,结构简单,就是网页发送内容,桌面程序显示弹幕。虽然程序不复杂,记录其包含的过程还是很多的,可谓任重道远呀。

    因为杰洛君也有点忙,所以虽然会尽量快地填坑,但有时难免跳票。如果心急了可以催一催,但请不要太频繁,我会报警的(>^ω^<)(认真)

    声音:额。。。我看完文章还是想问 -- 杰洛飞是谁呀?
    回答:一点都不可爱喜欢二次元的声优控+怪蜀黍一枚。



  • 这个可厉害了。我一定会支持的。有机会的话,我们详细聊一下,如果你比较了解QML的话,可以教你将你的创意和我的应用结合起来。



  • 速度更新博文吧,带上构思和源码,快要等不急了!PS:我并不喜欢二次元,什么鬼!



  • @jiangcaiyang 昨天听了你的公开课,看到了你的App,我就知道是二次元同道中人呀!感觉这个论坛十分有趣,所以就来写文了,这个东西实现起来很简单的。简单版本700行代码不到,多多交流呀kira ☆~



  • @Anson 好的,好的,哈哈~



  • 厉害,佩服!支持!😄



  • @Accelerated 没有啦~在群里看到你很热心帮大家解决问题,还是你更加厉害,快带我飞😄



  • @杰洛飞
    我之前看到你的那个弹幕开发的,牛掰了!我解决点小问题。你创造的是大技术!☺



  • 真不错!膜拜!同为二次元宅男[手动滑稽]



  • 好好好!
    赶紧更新博客吧。我的类似项目github

    https://github.com/qyvlik/DarkFlameMaster

    科科



  • @大神 这个真的很简单的,不值得膜拜,多多交流[手动滑稽] hiahia~



  • @qyvlik 这个好厉害呀,可惜我学Qt有点晚接触QML,现在只会简单的写写Rectangle什么的。这个桌面程序还是很传统地用Widget实现的。



  • @杰洛飞
    挺好的。QML实现的话,可能会有一些小问题,可以看那个项目的文档试一试。


 

走马观花~

最近的回复

  • 0_1531879249244_9090909.jpg
    各位上午好哦。很高兴告诉大家,我们的萌梦社区又进行了一波更新了!
    这次主要更新在论坛代码层面上的,也就是说我们根据NodeBB官方的指示,将论坛从1.9.3升级到了1.10.1了!整个升级过程会产生一些服务暂停的现象,不过没有关系,很快就可以得到恢复,现在咱们可以顺利地在新的论坛上玩耍了!
    这次更新按照NodeBB官方的说法,主要在论坛的稳定性和迎合欧盟的GPDR政策(隐私权保护政策)上,也就是说,咱们论坛默认是支持用户的隐私权保护的~不要担心自己的隐私会被黑客利用什么的,但是大家还是要保护好平时论坛登录的密码哦。合适的时候还是使用浏览器的记住密码功能~

    此外,之前萌梦论坛之前的SSL加密是免费的,费时效果又不好。在手机浏览器上显示并非可靠的颁发者,现在换了新的证书,感觉好了不少。现在又可以在论坛上玩耍啦。

    好了,就是这样~

    阅读更多
  • @jiangcaiyang 是不支持QVector3D类型么,需要引用头文件还是需要转换类型呢

    阅读更多
  • 可能是Qt制作的Python绑定Shiboken遇到了问题。求先行者能够解忧~😵

    阅读更多
  • 0_1531804634749_5.jpg
    我使用的是PyCharm作为IDE,下载了Qt for Python(使用Qt 5.11),并且使用git克隆了pyside的源代码 + 例子。因为自己对OpenGL感兴趣,所以随手运行了一个例子。首先是PyOpenGL没有安装。

    0_1531804316021_1f365ea0-46b3-460d-9a00-c8cdeccf98af-image.png

    通过对话框弹出的命令,在terminal上运行

    python -m pip install PyOpenGL PyOpenGL_accelerate

    就可以了。

    虽然窗体以及3D内容出来了,但是命令提示符中会出现一些问题:

    D:/QtProject/pyside-setup/examples/opengl/hellogl2.py:394: RuntimeWarning: SbkConverter: Unimplemented C++ array type. self.program.setUniformValue(self.lightPosLoc, QVector3D(0, 0, 70)) D:/QtProject/pyside-setup/examples/opengl/hellogl2.py:423: RuntimeWarning: SbkConverter: Unimplemented C++ array type. self.program.setUniformValue(self.projMatrixLoc, self.proj) D:/QtProject/pyside-setup/examples/opengl/hellogl2.py:424: RuntimeWarning: SbkConverter: Unimplemented C++ array type. self.program.setUniformValue(self.mvMatrixLoc, self.camera * self.world) D:/QtProject/pyside-setup/examples/opengl/hellogl2.py:426: RuntimeWarning: SbkConverter: Unimplemented C++ array type. self.program.setUniformValue(self.normalMatrixLoc, normalMatrix)

    刚学习Python,还不清楚是怎么回事,怎么解决才好。

    阅读更多

关注我们

微博
QQ群











召唤伊斯特瓦尔