最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyQt中使用QProcess運(yùn)行一個(gè)進(jìn)程的示例代碼

 更新時(shí)間:2022年12月24日 11:47:01   作者:smart_cat  
這篇文章主要介紹了在PyQt中使用QProcess運(yùn)行一個(gè)進(jìn)程,本例中通過(guò)按下按鈕,啟動(dòng)了windows系統(tǒng)自帶的記事本程序,即notepad.exe, 因?yàn)樗趙indows的系統(tǒng)目錄下,該目錄已經(jīng)加在了系統(tǒng)的PATH環(huán)境變量中,所以不需要特別指定路徑,需要的朋友可以參考下

一、前言

設(shè)計(jì)應(yīng)用程序時(shí),有時(shí)不希望將一個(gè)不太相關(guān)的功能集成到程序中,或者是因?yàn)樵摴δ芘c當(dāng)前設(shè)計(jì)的應(yīng)用程序聯(lián)系不大,或者是因?yàn)樵摴δ芤呀?jīng)可以使用現(xiàn)成的程序很好地實(shí)現(xiàn)了,這時(shí)就可以在當(dāng)前的應(yīng)用程序中調(diào)用外部的程序來(lái)實(shí)現(xiàn)該功能,這就會(huì)使用到進(jìn)程。Qt應(yīng)用程序可以很容易地啟動(dòng)一個(gè)外部應(yīng)用程序,而且Qt也提供了很多種進(jìn)程間通信的方法。

二、運(yùn)行一個(gè)進(jìn)程

Qt的QProcess類用來(lái)啟動(dòng)一個(gè)外部程序并與其通信。要啟動(dòng)一個(gè)程序,可以使用start()函數(shù),然后將程序名稱和運(yùn)行這個(gè)程序說(shuō)要使用的命令行參數(shù)作為該函數(shù)的參數(shù)。執(zhí)行完start()后,QProcess進(jìn)入Starting狀態(tài),當(dāng)程序已經(jīng)運(yùn)行后,QProcess就會(huì)進(jìn)入Running狀態(tài)并發(fā)射started信號(hào)。當(dāng)進(jìn)程退出后,QProcess重新進(jìn)入NotRunning狀態(tài)(初始狀態(tài))并發(fā)射finished信號(hào)。

發(fā)射的finished信號(hào)提供了進(jìn)程的退出代碼和退出狀態(tài),也可以調(diào)用exitCode()來(lái)獲取上一個(gè)結(jié)束的進(jìn)程的退出代碼,使用exitStatus()來(lái)獲取它的退出狀態(tài)。任何時(shí)間發(fā)生了錯(cuò)誤,QProcess都會(huì)發(fā)射error信號(hào),也可以調(diào)用error()來(lái)查看錯(cuò)誤的類型和上次發(fā)生的錯(cuò)誤。使用state()可以查看當(dāng)前進(jìn)程的狀態(tài)。

三、啟動(dòng)進(jìn)程的例子

本例中通過(guò)按下按鈕,啟動(dòng)了windows系統(tǒng)自帶的記事本程序,即notepad.exe, 因?yàn)樗趙indows的系統(tǒng)目錄下,該目錄已經(jīng)加在了系統(tǒng)的PATH環(huán)境變量中,所以不需要特別指定路徑。

運(yùn)行程序,然后單擊按鈕,就可以啟動(dòng)記事本程序,可以看到,使用QProcess運(yùn)行一個(gè)外部程序是很簡(jiǎn)單的。

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout, QMessageBox
from PyQt5.QtCore import QProcess
import sys

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.__process = QProcess()
        self.__btn = QPushButton('start notepad')
        self.__init_ui()
        
        # 關(guān)聯(lián)button clicked信號(hào)和對(duì)應(yīng)的槽函數(shù)
        self.__btn.clicked.connect(self.__btn_clicked_handler)
        self.__process.started.connect(self.__process_started_handler)
        self.__process.finished.connect(self.__process_finished_handler)
        
    def __init_ui(self):
        my_layout = QHBoxLayout()
        my_layout.addWidget(self.__btn)
        self.setLayout(my_layout)
        
    def __btn_clicked_handler(self):
        '''
        處理button的clicked信號(hào),打開(kāi)notepad.exe
        '''
        self.__process.start('notepad.exe')
        
    def __process_started_handler(self):
        '''
        處理QProcess的started信號(hào)
        '''
        start_msg_box = QMessageBox.information(self, 
                                                'info',
                                                '已成功打開(kāi)記事本',
                                                QMessageBox.StandardButton.Yes,
                                                QMessageBox.StandardButton.Yes)
        
    def __process_finished_handler(self, exitCode, exitStatus):
        '''
        處理QProcess的finished信號(hào),獲取退出狀態(tài)
        '''
        
        finished_msg_box = QMessageBox.information(self,
                                                   'info',
                                                   f'記事本已關(guān)閉, exitcode={exitCode}, exitStatus:{exitStatus}',
                                                   QMessageBox.StandardButton.Yes,
                                                   QMessageBox.StandardButton.Yes)
    
if __name__ == '__main__':
    app = QApplication(sys.argv)
    my_widget = MyWidget()
    my_widget.show()
    sys.exit(app.exec_())

運(yùn)行效果如下,

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于在PyQt中使用QProcess運(yùn)行一個(gè)進(jìn)程的文章就介紹到這了,更多相關(guān)PyQt使用QProcess運(yùn)行進(jìn)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)生命游戲的示例代碼(Game of Life)

    python實(shí)現(xiàn)生命游戲的示例代碼(Game of Life)

    這篇文章主要介紹了python實(shí)現(xiàn)生命游戲的示例代碼(Game of Life),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Python有參函數(shù)使用代碼實(shí)例

    Python有參函數(shù)使用代碼實(shí)例

    這篇文章主要介紹了Python有參函數(shù)使用代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python編程中對(duì)文件和存儲(chǔ)器的讀寫示例

    Python編程中對(duì)文件和存儲(chǔ)器的讀寫示例

    這篇文章主要介紹了Python編程中對(duì)文件和存儲(chǔ)器的讀寫示例,包括使用cPickle儲(chǔ)存器存儲(chǔ)對(duì)象的例子,需要的朋友可以參考下
    2016-01-01
  • Python實(shí)現(xiàn)打包成庫(kù)供別的模塊調(diào)用

    Python實(shí)現(xiàn)打包成庫(kù)供別的模塊調(diào)用

    這篇文章主要介紹了Python實(shí)現(xiàn)打包成庫(kù)供別的模塊調(diào)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 三行代碼使用Python將視頻轉(zhuǎn)Gif的方法示例

    三行代碼使用Python將視頻轉(zhuǎn)Gif的方法示例

    本文主要介紹了三行代碼使用Python將視頻轉(zhuǎn)Gif的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • python PyQt5中單行文本輸入控件QLineEdit用法詳解

    python PyQt5中單行文本輸入控件QLineEdit用法詳解

    在PyQt5的GUI編程中,QLineEdit控件是一個(gè)用于輸入和編輯單行文本的部件,它提供了豐富的功能和靈活性,可以輕松地實(shí)現(xiàn)用戶輸入的捕獲、驗(yàn)證和格式化等功能,本文將通過(guò)實(shí)際案例詳細(xì)介紹QLineEdit控件的常用方法,需要的朋友可以參考下
    2024-08-08
  • 詳解Python的Django框架中Manager方法的使用

    詳解Python的Django框架中Manager方法的使用

    這篇文章主要介紹了Python的Django框架中Manager方法的使用,包括修改初始Manager QuerySets和增加額外的Manager方法等操作,需要的朋友可以參考下
    2015-07-07
  • Python 合并拼接字符串的方法

    Python 合并拼接字符串的方法

    這篇文章主要介紹了Python 合并拼接字符串的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • python讀文件保存到字典,修改字典并寫入新文件的實(shí)例

    python讀文件保存到字典,修改字典并寫入新文件的實(shí)例

    下面小編就為大家分享一篇python讀文件保存到字典,修改字典并寫入新文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Pycharm如何導(dǎo)入python文件及解決報(bào)錯(cuò)問(wèn)題

    Pycharm如何導(dǎo)入python文件及解決報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了Pycharm如何導(dǎo)入python文件及解決報(bào)錯(cuò)問(wèn)題,本文通過(guò)示例截圖相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評(píng)論

汕头市| 岐山县| 罗江县| 江城| 甘谷县| 澳门| 南雄市| 兰州市| 浦江县| 六盘水市| 齐河县| 怀化市| 镇原县| 云阳县| 秦皇岛市| 绥滨县| 潍坊市| 霍邱县| 依兰县| 新建县| 伊宁市| 清河县| 乌拉特中旗| 信丰县| 海阳市| 汤阴县| 高安市| 望都县| 丰都县| 鱼台县| 安福县| 阜康市| 济宁市| 呼伦贝尔市| 财经| 革吉县| 项城市| 修水县| 西畴县| 永昌县| 土默特左旗|