2011-02-02 4 views
1

가능한 중복 : 나는 QWebView를 엽니 다하지만 응용 프로그램 창 Windows 콘솔 창에 추가로 오픈하는 간단한 응용 프로그램을 만들었
How can I hide the console window in a PyQt app running on Windows?내 앱용 콘솔 창을 숨기려면 어떻게해야합니까?

.

왜 이런 이유가있을 수 있습니까? 대신 python.exe를의

import sys 
import socket 
from PyQt4 import QtCore, QtGui 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import QWebView 

class AppWindow(QtGui.QWidget): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent)   

     self.setGeometry(300, 300, 200, 25) 
     self.setWindowTitle('TrayIP') 
     self.create_sys_tray()  

     self.hostname = socket.gethostname() 
     self.ip = socket.gethostbyname(self.hostname) 

     self.label = QLabel("IP: " + self.ip, self) 
     self.label.setFont(QtGui.QFont('Helvetica', 14)) 

     self.timer = QTimer() 
     self.connect(self.timer, QtCore.SIGNAL('timeout()'), self.timerupdate) 
     self.timer.start(10000) 

    def timerupdate(self): 
     self.web = QWebView() 
     self.web.load(QUrl('http://xxx')) 

    def create_sys_tray(self): 
     self.sysTray = QtGui.QSystemTrayIcon(self) 
     self.sysTray.setIcon(QtGui.QIcon('ico.ico')) 
     self.sysTray.setVisible(True) 
     self.connect(self.sysTray, QtCore.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.on_sys_tray_activated) 

     self.sysTrayMenu = QtGui.QMenu(self) 
     act = self.sysTrayMenu.addAction("FOO") 

    def on_sys_tray_activated(self, reason):   
     if self.isVisible(): 
      self.setVisible(False) 
     else: 
      self.setVisible(True) 

app = QtGui.QApplication(sys.argv) 
window = AppWindow() 
window.show() 
sys.exit(app.exec_()) 

답변

6

사용 pythonw.exe

+0

, 그것은 작동합니다 : D 감사합니다! – Jason94

3

이름, .pyw 파일 (콘솔 창없이 열립니다 대신 기본 Windows 설치에 평

2

의 .pyw 파일들이 있기 때문에 'pythonw로로드 됨), .py 파일이 콘솔에로드됩니다. 그래서 .pyw로 이름을 바꾸는 것이 아마도 가장 쉬운 해결책 일 것입니다.

는 또한 - 당신이 py2exe에 컴파일하는 경우, 당신은 변경해야 "콘솔 =" "창 ="쿨

+0

이것은 가장 좋은 답변입니다. 예를 들어, 파일이 .pyw로 확장 되더라도 문제가 발생했습니다. 문제의 추론은 문제를 해결하는 데 필요한 것입니다. – naftalimich

관련 문제