<th id="mffed"><video id="mffed"></video></th>
<pre id="mffed"></pre>
    <th id="mffed"><sup id="mffed"></sup></th>
  1. <th id="mffed"><video id="mffed"></video></th>
    <th id="mffed"><video id="mffed"></video></th>
  2. 為什么我不推薦你使用tkinter?pyqt——為python GUI開發注入生產力

    w3cschool小編 2023-01-31 17:44:02 瀏覽數 (6598)
    反饋

    想必對于各位學習python的小伙伴都有一顆做出好看的圖形用戶界面的心,因為程序最終是為人服務的,只有更好的服務更多人,才是一個好程序。而圖形用戶界面就是用來提升用戶體驗的。但是對于初學者而言,可能只聽過tkinter,pyqt等圖形用戶界面開發需要的庫,并不了解哪個好用,為什么好用,我要選擇哪一個。在早些時候小編曾經參與了tkinter手冊的整理,當時也對tkinter表示這個東西很好用。但自從接觸到pyqt后,我變心了!

    回顧——tkinter的優與缺

    tkinter的優點主要是它簡單無依賴,作為python標準庫,它不需要依賴其他庫就能直接使用,但是它也有很顯著的缺點:功能少,效果單一,不適合工程化的開發,開發的體驗也不是很好。

    展望——更好用的pyqt

    對于桌面開發,天下武功那么多,PyQt 既是最正統的門派,同時又是一系列綜合技術的組合,它進可以同 C++ Qt 無縫整合,解決性能相關的東西;退又有基于chromium 的 QtWebEngine ,能在適合跑頁面的部分用 html/js 來寫頁面,并和 python 雙向調用,實現類似 cef/Electron 的效果,但是 Electron這類單一解決方案就只能用 web 技術,想反過來同 native 界面混合開發,基本就傻了,碰到性能問題又不能像 PyQt 那樣可以無縫切換 C++ Qt,所以龐然大物 Electron 只適合呆在自己的舒適區。

    往左,QtWidgets 可以和傳統 C# 的 WinForm pk,往右,Qt-Quick 可以同 WPF/XAML 看齊,因此你可以把 PyQt/Qt看成一系列界面解決方案的 “超集”,所以學習 PyQt 你學會的是綜合格斗術,是名門正派的內功心法,而不是某方向單一的方案,比如 “螳螂拳”。                

    PyQt 就是一扇門,它通往的是最專業的桌面解決方案的世界。

    原罪——不好用

    tkinter的原罪就是其不好用。怎么說呢,作為一個標準庫,python有提供tkinter的文檔,但這份文檔描述得并不清楚,一旦出現問題,你就只能去四處搜索,然后各種找不到,到處找論壇找大佬求助??赡苣苡胻kinter開發出好用的程序的人,只有這個框架的作者們吧?

    另外tkinter還有一些問題,比如控件不齊全的問題,對前端頁面有熟悉的小伙伴應該知道有個東西叫下拉選單,也就是select

    簡單的下拉列表,該用例來自html教程

    這個功能算是比較常見的一個功能,結果tkinter并沒有內置,只有在他的拓展庫ttk中才有,也就是說在學完tkinter后還需要學他的拓展庫,了解透徹后才能開發出一個比較好的應用。

    還有飽為詬病的一點是其奇怪的參數傳遞機制,而且不是很清晰。

    這是pyqt的例子

    widget.setGeometry(100, 100, 640, 480)

    實現同樣的功能,tkinter的代碼是這樣的:

    root.geometry("%dx%d+%d+%d"%(width, height, x, y))

    從代碼可讀性而言,tkinter完全比不上pyqt。

    再看看這個例子:

    禁用輸入框輸入和按鈕無法點擊,這是pyqt的例子

    widget.setDisabled(True)
    widget.setDisabled(False)

    而這是tkinter的樣子:

    widget.config(state = 'disabled')
    widget.config(state = 'normal')

    true和false是關鍵字,在IDE中由于代碼提示,在寫代碼的時候這些參數能做什么不能做什么都說的清清楚楚。而tkinter使用字符串傳參的形式,反而不容易了解。

     正常人的思路是disabled禁止,enable開啟(恢復),沒想到吧,在這里要恢復需要使用的是normal!

    學習——pyqt學習起來真的快

    小編有一點點python基礎,只用了三十分鐘,就學會了簡單地用pyqt開發一個密碼生成器,之所以這么快,是因為pyqt雖然體系健全,看似復雜,但與html一樣,實際上常用的一些插件也就那些,快速掌握這些內容就能開發一個簡單的gui應用程序。

    但這不是說pyqt只能開發簡單程序,在復雜程序上他也能輕松勝任,原因在于他可以把圖形頁面與邏輯進行分離開發,這點也是tkinter做不到的。

     pyqt有一個qt設計師,可以直接用來設計界面,而且不需要你會編程語言,也就是說美工可以輕松勝任這個工作。

    學習pyqt本站也有提供相應的課程

    Python GUI編程 PyQt6入門到實戰

    Python GUI編程 PyQt6入門到實戰

    小編就是學習這個課程掌握的pyqt6!

    小結——人生苦短,我用qt

    在讀完這篇文章后,如果你還愿意使用tkinter,那么你肯定是真愛,而我?人生苦短,我選擇pyqt!

    0 人點贊

    女人ZOZOZO人禽交,做爰全过程免费无码的视频,18禁深夜福利网站APP免费,哔哩哔哩隐藏的肉片人肉片

    <th id="mffed"><video id="mffed"></video></th>
    <pre id="mffed"></pre>
      <th id="mffed"><sup id="mffed"></sup></th>
    1. <th id="mffed"><video id="mffed"></video></th>
      <th id="mffed"><video id="mffed"></video></th>