2014-02-20 28 views
0

如果我的結構看起來像這樣...PyQt的應用程序加載完成事件

from PyQt4 import QtCore, QtGui 
from PyQt4.QtGui import QDialog,QImage,QPixmap 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from appView import Ui_View 
# this is designer .ui file converted to .py via pyuic4 cmd 

class AppWindow(QDialog, Ui_View): 
    def __init__(self): 
     QDialog.__init__(self) 
     # Set up the user interface from Designer. 
     self.setupUi(self) 
     self.setupEvents() 
    def setupEvents(): 
     print ("setting up events") 

def onResize(event): 
     print event 
def main(): 
    app = QtGui.QApplication(sys.argv) 
    myapp = AppWindow() 
    myapp.resizeEvent = onResize 
    myapp.show() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 

問題:

  1. 我怎樣才能得到應用加載完成事件從PyQt的在 AppWindow類,讓我知道它的構造器已經完成運行?
  2. 如何在AppWindow類中獲取應用程序調整大小事件?
    我可以得到 這在主要功能和調整它,但如果AppWindow類有能力 傾聽和處理它:什麼是最好的辦法呢? 這應該如上完成嗎?
+0

你有什麼需要這些事件_for_?你究竟在努力實現什麼?你是否試圖阻止調整窗口大小? – ekhumoro

+0

其實我正在學習simplecv,試圖爲圖像處理創建應用程序。檢測一些東西等,即 應用程序檢測到一個文件夾中的10個圖像。加載時。我想讀第一個圖像並顯示它 加上,如果窗口調整大小,qscene和qview需要調整,縮放視圖等。 – lala

回答

3

解答:

  1. 剛開始一個單次計時器與QApplication調用上AppWindows正確的方法。
  2. 只需將onResize的編碼放入AppWindows.resizeEvent即可。

例子:

from PyQt4 import QtCore, QtGui 
from PyQt4.QtGui import QDialog,QImage,QPixmap 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
import sys 

class AppWindow(QDialog): 

    def __init__(self): 
     QDialog.__init__(self) 
     # Set up the user interface from Designer. 
     #self.setupUi(self) 
     self.setupEvents() 

    def setupEvents(self): 
     print ("setting up events") 

    def resizeEvent(self,event): 
     print event 

    def onQApplicationStarted(self): 
     print 'started' 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    myapp = AppWindow() 
    myapp.show() 
    t = QtCore.QTimer() 
    t.singleShot(0,myapp.onQApplicationStarted) 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 
+0

謝謝你我的朋友。 – lala

相關問題