python QT 圖形界面編程


教程網址 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,上邊界310

window.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) #創建實例化對象window

QtDesigner的一些使用細節()

布局好后,可以使用layoutstretch來調整layout中空間的占比大小。因為layout布局好后是不能拖動來改變里面控件大小的(sizepolicy也可i)

 顏色方案可以查看顯示樣式

 

2.https://blog.csdn.net/Dashi_Lu/article/details/89470039 講了創建窗口時dialog、widget、mainwindow的區別,簡單來說就是main。有菜單,一般用的都是widget

3.添加背景圖片!

在設置的項目基類為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.spec

dll 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_close

pip install opencv-python,pyside2

https://blog.csdn.net/liuyingying0418/article/details/100152759疑問解答,我們可以在命令行執行.exe文件返回錯誤信息

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM