2014-02-20 3 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, пытаясь создать приложение для обработки изображений. Обнаружение некоторых вещей и т. Д. I.e приложение обнаруживает 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

thankyou мой друг. – lala

Смежные вопросы