python3.6+pyqt5 IDE: Pycahrm+Qtdesign 快速开发GUI程序学习资源
2017-06-22 17:33
936 查看
前言:
MrYx为了应对实验,这三天就囫囵吞枣学习了Pyqt5方面知识,总的来说py语言简洁,库多好用,Qtdesign画界面也很爽,还是有点趣。估计以后再也不会用pyqt方面的东西,写一下博客记这几天学的东西资源,以后再用的时候再看这篇博客学习吧。搭建环境教程:
首先搭建开发环境:本人是win10系统,py3.6语言环境。安装过程主要参考:教程1与教程2,1写的非常详细,2里面的Qtdesign,Pyuic,pydcc三个Tool在开发过程中非常好用,强烈安利。
注意:我在配置pyrcc5.exe的路径和教程不一样,我是在python/scripts目录下。
将pyqt5界面设计代码和功能代码分离:
首先这个代码编写风格是很方便的,因为当你后期美化修改页面的时候,只用考虑页面设计代码,并不用修改界面按钮的功能实现代码。具体方法pyqt5控件使用:
最简单控件label(视频)交互button(视频)
多行文本框textbrowser
消息框QMessageBox
标准输入框QInputDialog
标准文件打开保存框QFileDialog
添加菜单栏(视频)
PyQt4 QListWidget 使用教程
…..待补充其他控件我没怎么用到,也没去学。
pyqt5 信号槽机制:
信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。它为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的很多 GUI 工具包中,窗口小部件(widget)都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在QT中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了.我写实验过程主要用到信号槽机制解决以下两个问题:
1.控件绑定槽函数实现控件功能。
2.自定义信号,实现多个窗口之间互相发送信息。:
我是通过给发送信息的窗口定义一个信号变量:eg:
A_signature=QtCore.pyqtSignal(list)
在接收窗口里实例化一个发送窗口,并用接受窗口里某个函数接受这个发送窗口的信号,接收的函数就叫槽函数。
例如:在一个窗口输入a,b两个数,利用信号传到到另一个窗口的槽函数。
import sys from PyQt5 import QtCore, QtGui, QtWidgets from input import Ui_input import answer_f #这是输入两个数的窗口功能代码,界面代码就不放了 class input_ui(QtWidgets.QWidget,Ui_input):#继承了界面窗口Ui_input a_signal=QtCore.pyqtSignal(str,str)#定义信号,传递两个str类型的参数 def __init__(self): super(input_ui, self).__init__() self.setupUi(self) self.cal.clicked.connect(self.click) self.win = answer_f.answer_ui() self.a_signal.connect(self.win.printans)#将信号与希望接受到它内容的槽函数绑定起来 def click(self): a=self.input1.text() b=self.input2.text() self.a_signal.emit(a,b)#发射信号,同时触发绑定函数执行。 self.win.show() if __name__ == '__main__': app=QtWidgets.QApplication(sys.argv) win=input_ui() win.show() sys.exit(app.exec_())
接收界面
import sys from PyQt5 import QtCore, QtGui, QtWidgets from answer import Ui_answer import input_f class answer_ui(QtWidgets.QWidget,Ui_answer): def __init__(self): super(answer_ui, self).__init__() self.setupUi(self) def printans(self,a,b):#接受a_signal信号的槽函数,注意变量类型要一一对应 ans=int(a)+int(b) ans=str(ans) self.label_ans.setText('结果是:'+ans)
pyqt5GUI外观美化:
通过网络视频课程学会在qtdesign修改label等控件的样式表,非常方便。pyqt多线程:将页面线程与工作线程分开
我在写点菜界面调语音识别api时候发现当一个界面某个功能需要执行很长时间,界面就会无响应,应该就是多线程的问题,查阅到这个教程很快解决了。简单来说就是重新写一个从QtCore.QThread继承的类,在其run()方法里放进耗时比较长的工作。pyqt打包:
看这个网络视频课程以上学习资源基本都来自于以下链接,感谢他们付出:
http://blog.csdn.net/seeground/article/category/5880801
http://blog.csdn.net/a359680405/article/details/45167225
http://www.maiziedu.com/course/577/
相关文章推荐
- 基于PyQt(Python+QT)的gui程序开发
- 基于PyQt(Python+QT)的gui程序开发 (转)
- 基于PyQt(Python+QT)的gui程序开发
- 基于PyQt(Python+QT)的gui程序开发
- Python学习之IDE(Eric4)------windows下搭建Python开发环境[python2.7+pyqt4(PyQt-Py2.7-x32-gpl-4.9.6-1)+Eric4(eric
- PYQT5+python3.6+QT编写一个带ui的加密解密小程序<凯撒加密><维吉尼亚加密><仿射加密><培根加密>
- 用python3+PyQt5改写Python Qt GUI快速编程的第七章实例Find Dialog
- 用python3+PyQt5改写Python Qt GUI快速编程的第6章实例主窗口
- Windows平台搭建基于PyQt5.8.2开发Python GUI程序的环境(含打包过程)
- PYTHON QT GUI快速编程 PYQT编程指南pdf
- 用python3+PyQt5改写Python Qt GUI快速编程的第6章实例主窗口 信号及槽如何使用
- Python开发Gui程序的框架选择
- 在IDE(VC++)下开发Qt程序
- 免费编程入门教程资源推荐搜集,分享给想开始学习程序开发的同学
- 免费编程入门教程资源推荐搜集,分享给想开始学习程序开发的同学[
- 初步学习:Eclipse3.6开发C/C++程序(Windows下)
- 免费编程入门教程资源推荐搜集,分享给想开始学习程序开发的同学
- 在IDE(VC++)下开发Qt程序
- 免费编程入门教程资源推荐搜集,分享给想开始学习程序开发的同学
- Object-C学习1———Xcode 4.2 IDE开发iPhone程序