这篇是好玩的
最近在学C++和QT,于是我用PyQT5练习了一下(嗯,很有逻辑),给之前一个大乐透爬虫做了个GUI,感觉还有点意思。代码不贴了,移步GitHub仓库MillionsPerDay
本软件采用了国际流行的ISM(Iron Straight Man)设计风格,具有操作简单、配色典雅、可拓展等优点,与同类软件相比具有我编不下去的优势,如图所示:
项目仍处于稳定的不定期更新状态,欢迎吐槽
主要技能:
- PyQT5的TableView显示pandas的DataFrame并控制背景颜色
- PyQT5的graphicsView显示matplotlib的FigureCanvas
- PyQT5的lineEdit通过returnPressed信号实现动作(槽)
- Qt Designer搭建布局、设置信号/槽等
- matplotlib条形图方向、轴控制等
- xpath解析requests返回的response
- pandas通过sqlalchemy读写入sqlite3数据库
事实上第1、2两点可能并不是最佳实践:
- 用TableWidget显示DataFrame可能会更方便,只是一开始走弯路直接用TableView通过QtSql显示sqlite数据库,然后网上找了将DataFrame封装为TableModel的代码——因此粗略地接触了MVC的逻辑,说不清是学到了更多还是混淆了更多……
- matplotlib官网给的嵌入Qt教程直接通过layout.addWidget(FigureCanvas),很方便,但是我希望充分利用Qt Designer的布局功能,总觉得将界面和逻辑区分得越清楚越显得专业……