2017-12-07 34 views
0

휴대용으로 만들고 싶은 PyQt5 QWebengine 앱을 만들었습니다. 플래시가 앱에서 작동하지 않는다는 것을 알았습니다. . \ WINDOWS \ System32 \ Macromed \ Flash \로 이동이 작동 : 독서를 많이 한 내가 out 폴더에 pepflashplayer64을 가진 _ * DLL & manifest.json을고정 된 내부 명령을 사용하여 스크립트 실행 Qwebengine pepflashplayer를 포함하는 인수

C 것으로 나타났다.

내가 응용 프로그램과 함께 pepflashplayer를 제공 싶어하지만

및 PATH의 ENV var에 사용자 정의 플래시 폴더를 추가, 효과가 없거나 sys.path.insert()

명령

myapp.py --ppapi-flash-path=C:\Flash\pepflashplayer64_27_0_0_187.dll 

이 작동하지만 스크립트가 시작될 때 추가 기능을 내부적으로 전달하는 방법은 무엇입니까?

sys.arg [0] 스크립트를 추가 명령으로 실행했지만 성공하지 못한 더러운 해킹을 시도했습니다.

if __name__ == "__main__": 
    # print sys.argv 
    flash = (' --ppapi-flash-path=C:\Flash\pepflashplayer64_27_0_0_187.dll').split() 
    # print flash 
    noooo = (sys.argv[0] + flash[0]).split() 
    import sys 
    app = QtWidgets.QApplication(noooo) 
    # ... the rest of your handling: `sys.exit(app.exec_())`, etc. 
+0

'QtWidgets.QApplication'에는 어떤 종류의 인수가 사용됩니까? 설명서를 요약 할 수 있습니까? – hpaulj

+0

기타 중 "메인 이벤트 루프를 시작하고 exit()가 호출 될 때까지 기다린 다음 exit()에 설정된 값을 반환합니다 (quit()을 통해 exit()가 호출되면 0) 이 함수를 호출하여 이벤트 처리를 시작합니다. 메인 이벤트 루프는 윈도우 시스템에서 이벤트를 수신하고이를 애플리케이션 위젯에 전달합니다. " –

+0

나는 명령 줄을 통해 마지막 인수를 입력 할 필요없이 기본 sys.argv [1]을 설정하고 싶습니다. –

답변

0

괜찮아요. 제가 휴대용 앱으로 앱을 만들 수 있도록 해 주었고 솔루션이 생각보다 간단했습니다. 두 번째 내부 인수를 이와 같이 구문 분석합니다.

if __name__ == "__main__": 
    programname = os.path.dirname(sys.argv[0]) #get current script full folder path 
    pepperpflash = ' --ppapi-flash-path=' + programname + '/Flash/pepflashplayer64_27_0_0_187.dll' 
    try: 
     app = QtWidgets.QApplication(sys.argv + [pepperpflash]) 
    except: 
     app = QtWidgets.QApplication(sys.argv) 
    # ... the rest of your handling: `sys.exit(app.exec_())`, etc.