2008-10-07 2 views
21

파이썬에서 자바 스크립트의 경고 ("메시지")와 비슷한 경고를 생성 할 수 있으며, 응용 프로그램은 데몬으로 실행됩니다.파이썬의 경고 상자?

이것은 Windows에서 실행되며, 대부분 XP이지만 2000 및 Vista도 매우 실제 가능성이 있습니다.

업데이트 : 이것은 특정 조건을 충족하는 사용자를 백그라운드에서 실행하고 경고하기위한 것입니다
, 나는 사용자에게 경고하는 가장 쉬운 방법은 그것을 할 필요가 같은 팝업을 생산하는 것이라고 파악 즉시 처리하고, 로깅이나 이메일 전송과 같은 다른 옵션은 충분히 효율적이지 않습니다. 이것에 대해

+1

필자는 데몬이 아닌 "백그라운드 프로세스"라는 문구를 사용하는 것이 더 좋은 방법이라고 생각합니다. – UnkwnTech

답변

38

무엇 : 또한

import win32api 

win32api.MessageBox(0, 'hello', 'title') 

:

win32api.MessageBox(0, 'hello', 'title', 0x00001000) 

박스는 긴급 메시지를 다른 창의 맨 위에 표시 할 것입니다. 다른 옵션은 MessageBox function을 참조하십시오.

+0

이것은 고마워요. – UnkwnTech

+2

이 함수에 대한 자세한 내용은 다음에서 찾을 수 있습니다. http://docs.activestate.com/activepython/2.4/pywin32/win32api__MessageBox_meth.html – UnkwnTech

+11

'ImportError : No module win32api'가 표시됩니다. – user

-2

응용 프로그램을 로컬 호스트에 연결된 TCP 포트가있는 백그라운드 프로세스로 시작하거나 파일을 통해 통신합니다. 데몬에는 파일이 열려 있고 사용자는 echo "foo" > c:\your\file입니다. 1 초 동안 아무런 활동이 없으면 메시지를 표시하고 파일을 자릅니다.

+2

그건 끔찍한 일처럼 보입니다. 그리고 그것은 문제를 해결하지 못합니다. – UnkwnTech

+0

대화 상자가 표시 될 조건을 지정하지 않았습니다. 나는 어플리케이션 간 의존성을 가정했다. –

+0

경고 상자를 만들 필요가 있다고했는데 경고 메시지가 표시되지 않습니다. – UnkwnTech

1

파이썬에서 win32 라이브러리를 사용할 수 있습니다. 이는 OK 또는 Cancel의 전형적인 예입니다.

import win32api 
import win32com.client 
import pythoncom 

result = win32api.MessageBox(None,"Do you want to open a file?", "title",1) 

if result == 1: 
print 'Ok' 
elif result == 2: 
print 'cancel' 

컬렉션 : 그것은 크로스 플랫폼으로

win32api.MessageBox(0,"msgbox", "title") 
win32api.MessageBox(0,"ok cancel?", "title",1) 
win32api.MessageBox(0,"abort retry ignore?", "title",2) 
win32api.MessageBox(0,"yes no cancel?", "title",3) 
+4

pythoncom 및 win32com.client를 가져 오지 않았습니다. – totaam

3

GTK는, 더 좋은 옵션이 될 수 있습니다. 그것은 우분투에서 잘 작동 할 것이고, GTK와 파이썬 바인딩이 설치되었을 때 윈도우에서 잘 작동 할 것입니다.

from gi.repository import Gtk 

dialog = Gtk.MessageDialog(None, 0, Gtk.MessageType.INFO, 
      Gtk.ButtonsType.OK, "This is an INFO MessageDialog") 
dialog.format_secondary_text(
    "And this is the secondary text that explains things.") 
dialog.run() 
print "INFO dialog closed" 

기타 예제 here을 볼 수 있습니다. (pdf)

전달 된 인수는 gtk.window 상위 (또는 없음), DestroyWithParent, 메시지 유형, 메시지 단추, 제목이어야합니다.

+0

어떻게 든이 모듈은 "no modules named repository"라는 오류 메시지를 표시합니다. 그것은 구식 것 같습니다? – Kev1n91

+0

@ Kev1n91 당신은 우분투 16.04 이상입니까? python3에서 사용해보십시오. :) – NoBugs