您的当前位置:首页pythonQT图形界面编程

pythonQT图形界面编程

2022-05-13 来源:爱问旅游网
pythonQT图形界⾯编程

教程⽹址 www.python3.vip

求知讲堂2020python+⼈⼯智能 https://www.bilibili.com/video/av327814069/?spm_id_from=333.788.b_636f6d6d656e74.47安装pyside2 在cmd⾥⾯敲这个:pip install pyside2 -i https://pypi.douban.com/simple 就可以正常下载了。结果:Successfully installed pyside2-5.15.0 shiboken2-5.15.0

P2

  QApplication 提供了整个图形界⾯程序的底层管理功能,如:初始化,程序⼊⼝参数处理,⽤户事件(对界⾯的点击,输⼊,和拖拽)分发给各个对应的控件,官⽅对QApplication的说明https://doc.qt.io/qt-5/qapplication.html必须在任何界⾯控件对象创建前创建他。

app = QApplication([]) 实例化⼀个空的;window = QMainWindow() 主窗⼝对象window.resize(500, 400)窗⼝⼤⼩;window.move(300, 310)窗⼝移动到距离屏幕左侧300,上边界310window.setWindowTitle('薪资统计');textEdit = QPlainTextEdit(window)纯⽂本窗⼝,挂在⽗窗⼝window下⾯app.exec_() 死循环,等待⽤户的输⼊;button.clicked.connect(handleCalc) 让handleCalc(⼀个函数)来处理button被点击的操作。info = textEdit.toPlainText();QMessageBox.about(window,'统计结果',f'''薪资20000 以上的有:\\n{salary_above_20k} \\n薪资20000 以下的有:\\n{salary_below_20k}''')弹出窗⼝信息可以⽤class将初始化串⼝那些信息都封装起来,成⼀个⽅法,别忘记要初始化。 ⾥⾯可以定义⼀个def __init__(self):⽅法⽤来初始化,初始化的变量前都加⼀个self.

P3-P5 开始利⽤QtDesigner来设计

1.如何引⼊ui⽂件

qfile_stats = QFile(\"Tongji.ui\")qfile_stats.open(QFile.ReadOnly)qfile_stats.close()

self.window=QUiLoader().load(qfile_stats) #创建实例化对象windowQtDesigner的⼀些使⽤细节()

布局好后,可以使⽤layoutstretch来调整layout中空间的占⽐⼤⼩。因为layout布局好后是不能拖动来改变⾥⾯控件⼤⼩的(sizepolicy也可i) 颜⾊⽅案可以查看显⽰样式

2.https://blog.csdn.net/Dashi_Lu/article/details/89470039 讲了创建窗⼝时dialog、widget、mainwindow的区别,简单来说就是main。有菜单,⼀般⽤的都是widget3.添加背景图⽚!

在设置的项⽬基类为Widget的时候,不能⽤setstylesheet设置widget的背景图⽚。

  ⽽要为整个窗⼝设置背景图⽚,可以向其中添加⼀个Frame覆盖这个窗⼝,这样就可以使⽤了

  QFrame类族是带有边框部件的基类,它的⼦类有Qlabel,还有QLCDNumber,QSplitter,还有QStackedWidget,QToolBox和QAbstractScrollrea。  添加样式表的时候,要先选择类型!!!添加资源旁边那个⼩箭头

  border-image:url();//拉伸填充  background:url();//平铺  background-image:url();//平铺

P如何⽤打包python可执⾏程序https://github.com/pyinstaller/pyinstaller/issues/4233官⽅github问答

要先pip install pyinstaller

  然后pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml

  这样就会在当前⽬录下产⽣⼀个名为 dist 的⽬录。⾥⾯就有⼀个名为 httpclient 的⽬录,我们的可执⾏程序 httpclient.exe 就在⾥⾯。

  --noconsole 指定不要命令⾏窗⼝;--hidden-import PySide2.QtXml 参数是因为这个 QtXml库是动态导⼊,PyInstaller没法分析出来,需要我们告诉它,

nltk_data⽂件夹的添加:

  https://www.jianshu.com/p/ef6e23f8e2c1 更改路径

  https://blog.csdn.net/u010167269/article/details/63684137 查找路径

  我把⽂件夹放在了F:\\python37\\python37 不⾏,还是使⽤上⾯那个更改路径的⽅法,放在C:\\Users\\sanshui\\AppData\\Roaming下⾯才有效报错解决⽅法⼤全https://blog.csdn.net/u014563989/article/details/80940321

https://blog.csdn.net/slc1112/article/details/104234076 少引⼊包的⽅法,可以改spec⽂件

pkg_resources.py2_warn 打包时要加这个包!!! 最后解决的⽅法是,在spec⽂件中hiddenimport中加如这个包,然后⽤pyinstaller ./kouzhao.specdll load faileed https://blog.csdn.net/j84491135/article/details/82658530 尝试⽤这个⽅法解决

发现不⾏,还是报错

其实是打包的时候出现了很多warning找不到lib,解决

https://blog.csdn.net/god_wen/article/details/88629865 https://blog.csdn.net/Rayn_Zhu/article/details/106454057

打包时⽤命令pyinstaller --paths F:\\python37\\python37\\Lib\\site-packages\\shiboken2 kouzhao.py --hidden-import PySide2.QtXml --hidden-import pkg_resources.py2_warn 找到没找到的lib的路径,打包时指定好路径就好了

仍然会出现win32com 的module找不到,还有TypeError: expected str, bytes or os.PathLike object, not WindowsPath 但是打包出来的exe能⽤了!

虚拟python环境pipenv中打包更⼩

https://blog.csdn.net/RYOMARYOMA/article/details/106238214?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.opensearch_close&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.opensearch_closepip install opencv-python,pyside2

https://blog.csdn.net/liuyingying0418/article/details/100152759疑问解答,我们可以在命令⾏执⾏.exe⽂件返回错误信息

因篇幅问题不能全部显示,请点此查看更多更全内容