본문 바로가기
프로그래밍/언어_스크립트

[PyQt] QtDesigner로 생성한 클래스 사용하기

by 써드아이 2014. 11. 28.

"""#!C:\Python34\python.exe"""


# -*- coding: utf-8 -*-


import sys

from PyQt5.QtWidgets import *


# 아래 명령으로 생성된 클래스들 

# pyuic5 *.ui -o *_ui.pyw

from mainwindow_ui import *

from dialog_ui import *

from widget_ui import *


class WindowMain(QMainWindow):

def __init__(self, parent=None):

QMainWindow.__init__(self, parent)

self.ui = Ui_MainWindow() # mainwindow_ui.pyw

self.ui.setupUi(self)


""" 위의 표현이 맞는거 같다. (아래 코드도 동작을 하긴 하는데...)

def __init__(self):

super(WindowMain,self).__init__()

self.ui = Ui_MainWindow()

self.ui.setupUi(self)


def __init__(self, parent=None):

super()__init__(parent)

self.ui = Ui_MainWindow()

self.ui.setupUi(self)


"""


class DialogMain(QDialog):

def __init__(self, parent=None):

QDialog.__init__(self, parent)

self.ui = Ui_Dialog() # dialog_ui.pyw

self.ui.setupUi(self)


class FormMain(QWidget):

def __init__(self, parent=None):

QWidget.__init__(self, parent)

self.ui = Ui_Form() # widget_ui.pyw

self.ui.setupUi(self)


if __name__ == "__main__":

app = QApplication( sys.argv )


mainWin = WindowMain()

mainWin = DialogMain()

mainWin = FormMain()

mainWin.show()


app.exec_()



%%%
Qt Designer 에서 Dialog로 만든 UI는 반드시 QDialog를 상속받은 클래스에서 사용되어야 한다.
그렇지 않으면 Layout 관련되어 문제가 발생 엉뚱한 화면을 만들어 낸다.