2019/4/25
无关重要、这些基本不影响运行,或基本用不上的
常识性、这些在学py3的时候应当知道
比较重要、容易忽略的变化,一般容易引发异常或bug,需要注意的
重要、变化较大,且影响
非常重要、大改的常用部分。
1、选择文件
qt4里getOpenFileName只返回路径,在qt5里返回是(路径,类型)。
#qt4
path = QFileDialog.getOpenFileName(parent=self.widget, caption=u'选择文件',
directory=nowpath,filter=u'excel2003(*.xls)')
#qt5
path,filetype = QFileDialog.getOpenFileName(parent=self.widget, caption=u'选择文件',
directory=nowpath,filter=u'excel2003(*.xls)')
2、QApplication的引用
如果要启动一个app窗口类需要
#qt4
from PyQt4.QtGui import *
app=QApplication(sys.argv)
ui = Dialog()
sys.exit(app.exec_())
#qy5
from PyQt5.QtWidgets import QApplication
app=QApplication(sys.argv)
ui = Dialog()
sys.exit(app.exec_())
当然,QApplication,QMainWindow,QWidget,QPushButton等都被分到了QtWidgets里
3、绘图之画方形
不仅改了名字,调用方法也改变了
#qt4
#参数是 起始x,起始y,长,宽
painter.drawRoundRect(0,0,2,2)
#qt5
#参数是 起始x,起始y,长,宽,圆角度,元角度
painter.drawRoundedRect(0,0,2,2,0.0,0.0)
4、pyqt5下没有pyuic5.bat问题
pyuic5.bat和pyuic4.bat是pyqt开发时用到的重要文件。其作用是“把.ui文件转成.py文件”,pyuic5.bat对应转成qt5的py文件,pyuic4.bat则是转成qt4的py文件。
我在py3.4安装pyqy5是有这文件的,在“Python34\Lib\site-packages\PyQt5”下。如果无法直接调用,可以使用绝对路径调用。
但在py3.7.2下装了pyqr5、pyqt5-sip、pyqt5-detenv都没有这文件。
我们可以在对应的PyQt5文件下创建pyuic5.bat文件。内容如下
@"C:\Program Files\Python37\python" -m PyQt5.uic.pyuic %1 %2 %3 %4 %5 %6 %7 %8 %9
@必须是绝对路径。