среда, 21 декабря 2011 г.

Первый опыт PyQt4

pyuic4 название_файла_с_кодом.py -o шаблон.ui
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'dialog1.ui'
#
# Created: Thu Dec 22 00:40:39 2011
#      by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_MainDialog(object):
    def setupUi(self, MainDialog):
        MainDialog.setObjectName("MainDialog")
        MainDialog.resize(400, 300)
        self.newDialogButton = QtGui.QPushButton(MainDialog)
        self.newDialogButton.setGeometry(QtCore.QRect(300, 260, 90, 27))
        self.newDialogButton.setObjectName("newDialogButton")

        self.retranslateUi(MainDialog)
        QtCore.QMetaObject.connectSlotsByName(MainDialog)

    def retranslateUi(self, MainDialog):
        MainDialog.setWindowTitle(QtGui.QApplication.translate("MainDialog", "Main Dialog", None, QtGui.QApplication.UnicodeUTF8))
        self.newDialogButton.setText(QtGui.QApplication.translate("MainDialog", "New Dialog", None, QtGui.QApplication.UnicodeUTF8))
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'dialog2.ui'
#
# Created: Thu Dec 22 00:40:51 2011
#      by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_SecondDialog(object):
    def setupUi(self, SecondDialog):
        SecondDialog.setObjectName("SecondDialog")
        SecondDialog.resize(400, 300)

        self.retranslateUi(SecondDialog)
        QtCore.QMetaObject.connectSlotsByName(SecondDialog)

    def retranslateUi(self, SecondDialog):
        SecondDialog.setWindowTitle(QtGui.QApplication.translate("SecondDialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
import sys
from PyQt4 import QtGui, QtCore
from dialog1 import Ui_MainDialog
from dialog2 import Ui_SecondDialog

class MainDialig(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MainDialig,self).__init__(parent)
        
        self.secondDialog = SecondDialog(parent)

        self.ui = Ui_MainDialog()
        self.ui.setupUi(self)
        self.ui.newDialogButton.clicked.connect(self.showSecondDialog)

    def showSecondDialog(self):
        self.secondDialog.show()

class SecondDialog(QtGui.QWidget):
    def __init__(self, parent=None):
        super(SecondDialog,self).__init__(parent)
        self.ui = Ui_SecondDialog()
        self.ui.setupUi(self)

def main():
    app = QtGui.QApplication(sys.argv)
    mainWindow = MainDialig()
    mainWindow.show()
    sys.exit(app.exec_())

if __name__=='__main__':
    main()
from dialog1 import Ui_MainDialog
from dialog2 import Ui_SecondDialog
class MainDialig(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MainDialig,self).__init__(parent)
self.secondDialog = SecondDialog(parent)
self.ui = Ui_MainDialog()
self.ui.setupUi(self)
self.ui.newDialogButton.clicked.connect(self.showSecondDialog)
def showSecondDialog(self):
    self.secondDialog.show()
class SecondDialog(QtGui.QWidget):
    def __init__(self, parent=None):
        super(SecondDialog,self).__init__(parent)
        self.ui = Ui_SecondDialog()
        self.ui.setupUi(self)
def main():
    app = QtGui.QApplication(sys.argv)
    mainWindow = MainDialig()
    mainWindow.show()
    sys.exit(app.exec_())

if __name__=='__main__':
    main()
mainWindow = MainDialig()
mainWindow.show()
import sys
from PyQt4 import QtGui, QtCore
from dialog1 import Ui_MainDialog

class MainDialig(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MainDialig,self).__init__(parent)
        
        self.ui = Ui_MainDialog()
        self.ui.setupUi(self)
        ##############
        #Добавление функционала к элементам окна
        ##############

def main():
    app = QtGui.QApplication(sys.argv)

    mainWindow = MainDialig()

    # знак "=" не зря не выделен. Дело в том, что такая строка обязательна, но меняется то, что выделено. 

    mainWindow.show() 
    sys.exit(app.exec_())

if __name__=='__main__':
    main()