• <center id="q6uyy"><td id="q6uyy"></td></center>
    <dd id="q6uyy"></dd>
  • 推廣 熱搜: csgo  vue  angelababy  2023  gps  新車  htc  落地  app  p2p 

    為你的 Python 程序寫個啟動工具箱

       2023-08-29 網絡整理佚名1680
    核心提示:來執行你的程序。程序的地址,最好使用絕對地址。實現啟動工具箱實現一個啟動工具箱。文件,但是此時程序的路徑為啟動管理器的路徑。所以說,如果你要打開的程序,比方說“PDF閱讀器”,涉及到了文件路徑,一定要使用絕對路徑。下面這行代碼把當前路徑更改為你的“PDF閱讀器”所在目錄。閱讀器的思想基本相同,增加了上下文管理器,提高代碼可讀性。

    到目前為止,高效編程已經介紹了很多圖形界面軟件,比如猜謎游戲、PDF閱讀器、貪吃蛇游戲、天氣查詢軟件、PDF閱讀器等。為了方便別人,我們經常將圖形界面打包成exe文件。 但如果我們只是為了自己方便使用的話,我們有必要把程序打包成幾十甚至上百兆的exe文件嗎? 不需要。 我們只需要能夠快速啟動圖形界面即可。 下面我將介紹幾種無需打開cmd窗口即可顯示圖形界面的方法。

    獨立的方式

    第一種方式是直接將py文件的后綴改為pyw,這樣系統就會自動調用.exe來執行你的程序。 這樣你就不用忍受漆黑的cmd窗口了,也不會因為關閉cmd窗口而關閉程序。

    在此插入圖片描述

    然后我們就可以在桌面上新建一個快捷方式,右鍵并在屬性中更改圖標,這樣我們就創建了圖形界面的快捷啟動方式。

    批處理文件

    第二種方法與第一種類似。 它也是通過.exe執行pyw文件,只不過被替換為bat批處理文件。

    我們新建一個txt文件,在里面輸入這兩行代碼,然后保存為.bat文件。 start 后的第一個字符串表示 .exe 文件的位置,通常在您的安裝目錄下,與 .exe 在同一目錄中。 第二個字符代表你的pyw程序的地址,最好使用絕對地址。

    @echo off
    start "D:\python372\pythonw.exe" "D:\\QQPCMgr\Desktop\Pytho高效編程\start.pyw" 
    

    同樣,您可以創建快捷方式并更改圖標。

    啟動工具箱并執行

    下面,我將演示如何使用PyQt5實現一個啟動工具箱。

    主要實現了以下功能:

    為了方便使用,我們可以將這個軟件打包成exe文件,或者重命名為pyw后綴,并創建快捷方式,方便使用。

    要點一:

    這個程序的核心思想是再開一個進程來執行py文件,但是此時程序的路徑是啟動管理器的路徑。 所以,如果你要打開的程序,比如“PDF閱讀器”,涉及到文件路徑,一定要使用絕對路徑。 如果您使用相對路徑,則必須在“PDF ”源代碼中添加以下有關該路徑的代碼行。 以下代碼行將當前路徑更改為“PDF 閱讀器”所在目錄。

    os.chdir(os.path.dirname(os.path.realpath(__file__)))
    

    關鍵點二:

    我們用來管理流程。 首先創建一個對象并調用該方法。 方法可以在主進程之外打開一個新進程。 也就是說,如果我們打開或關閉“PDF閱讀器”,并不會影響啟動管理器的運行。

    from PyQt5.QtCore import QProcess
    def open(self):
     fname = self.get_file()
     if fname:
     process = QProcess()
     process.startDetached('python', [fname])
    

    要點三:

    重寫按鈕類,支持右鍵菜單等一系列操作。

    其中就是按鈕附帶的主程序。

    class MyButton(QPushButton):
     def __init__(self, parent=None):
     super(MyButton, self).__init__(parent)
    

    重寫以下函數:

    需要保存的按鈕信息包括:按鈕名稱(您設置的應用程序名稱)、按鈕對應的地址、按鈕狀態(用于判斷按鈕是否有綁定地址,如果有則修改覆蓋名稱的操作)不支持)。

    def initUi(self):
     # 右鍵菜單工具欄
     addAction = QAction('添加', self)
     addAction.triggered.connect(self.add)
     delAction = QAction('刪除', self)
     delAction.triggered.connect(self.delete)
     self.addAction(addAction)
     self.addAction(delAction)
     self.clicked.connect(self.run)
    

    要點四:

    與數據庫交互與最后500行代碼實現PDF閱讀器的思路基本相同,增加了上下文管理器以提高代碼可讀性。

    數據庫中保存的信息就是關鍵點3中提到的屬性。

    def save2db(start):
     with DBManger(starter) as conn:
     conn.execute("INSERT INTO starter Values (?,?,?)",
     (start.fname, start.name, start.state))
     conn.commit()
    

    好了,重點就這些了,感興趣的朋友點擊以下鏈接獲取源碼:

     
    反對 0舉報 0 收藏 0 打賞 0評論 0
     
    更多>同類資訊
    推薦圖文
    推薦資訊
    點擊排行
    網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報
    Powered By DESTOON
     
    三级精品影视国产,欧美乱伦免费综合,亚洲a在线中文,人妻色综合网站
  • <center id="q6uyy"><td id="q6uyy"></td></center>
    <dd id="q6uyy"></dd>