아래코드는 Qt디자이너로 만든 .ui파일을 동적으로 로드하는 방법이다. import ui_sort_dialog import sys from PyQt4 import QtGui, uic class SortDialog(QtGui.QDialog): def __init__(self, parent=None): super(SortDialog, self).__init__(parent) self.ui = uic.loadUi("sort_dialog.ui", self) app = QtGui.QApplication(sys.argv) sort_dialog = SortDialog() sort_dialog.show() sys.exit(app.exec_())
메인윈도우에서 다이얼로그를 사용하는 방법에는 2가지가 있다. 모달(modal) : 다이얼로그를 사용시 메인위도우를 사용할 수 없도록 하는 방법 모덜리스(modeless) : 다이얼로그를 사용시 메인위도우도 사용하도록 하는 방법 모달(modal)로 다이얼로그를 사용하기 dialog = SaveDialog(self) dialog.exec_() 모덜리스(modeless)로 다이얼로그를 사용하기 if (not self.search_dialog): self.search_dialog = SearchDialog(self) self.search_dialog.show() self.search_dialog.raise() self.search_dialog.activateWindow() ... 코드는 추후에 수정한다. rai..
designer로 만든 ui를 pyqt에서 사용하는 방법은 크게 2가지 방법이 있다. ui를 pyuic를 이용하여 python코드로 변환하는 방법 ui를 uic.loadUi()를 이용하는 방법 2번의 방법을 이용하는 경우, uic.loadUi()로 생성된 객체를 통해서 접근을 해야 하므로 개인적으로 1번의 방법을 사용하고 있다. 그래서 1번의 방법을 이용해서 ui를 상속받아 사용하는 방법에 대해 기록할려고 한다. pyuic를 사용하는 방법은 http://ruriro.tistory.com/4를 참고하면 된다. disigner로 만든 화면은 크게 두가지로 볼 수 있다. 메인윈도우(main window) 다이얼로그(dialog) 메인윈도우는 프로그램에서 단 하나의 최상위 화면으로 볼 수 있다. 그래서 프로그램..
pyqt는 사용자가 정의한 signal을 발생(emit)할 수 있다. emit시 signale에 연결(connect)된 slot을 호출하게 된다. 예제코드는 아래와 같다. stackoverflow를 참고하였다. class StartDialog(QtGui.QDialog, QtCore.QObject, Ui_StartDialog): new_start_signal = QtCore.pyqtSignal() def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) QtCore.QObject.__init__(self) self.setupUi(parent) self.new_button.clicked.connect(self.new_button_clicke..
Qt에서는 signal과 slot이 존재한다. 이벤트 발생시 signal이 발생되고, signal발생시 호출되는 함수를 slot이라고 한다. 그리고 signal과 slot을 서로 연결(connect)해야 올바르게 작동이 된다. signal과 slot을 연결하는 방법 QtCore.QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function) widget.signalname.connect(slot_function) 위의 2가지 방법 모두 결과는 같다. 사용 예제 button(buttonset)에서 clicked시그널이 발생시 사용자가 정의한 buttonset_clicked()메서드가 호출되도록 예제를 작성하면 아래와 같다. # 1 self.conne..
아래 코드는 designer로 만든 ui파일을 pyuic4를 -x옵션으로 실행가능하도록 만든 py파일이다. # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'hello.ui' # # Created by: PyQt4 UI code generator 4.11.4 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui...
anaconda3.5에서 Qt designer를 이용하여 UI프로그램을 만들어 보려고 한다. 기본적인 제작과정은 다음과 같다. Qt designer를 이용하여 UI를 디자인하고 xxx.ui파일 만들기 pyuic4를 이용하여 xxx.ui파일을 xxx.py로 변환하기 변환된 xxx.py파일을 이용하여 프로그램을 완성하기 이 문서는 anaconda3.5.1과 pyqt4.11.4를 이용하여 작성하였다. 1. Qt designer를 이용하여 UI를 디자인하고 xxx.ui파일 만들기 Qt designer는 C:\Anaconda3\Library\bin\designer.exe를 실행시키면 사용할 수 있다. C:\Anaconda3\Library\bin\는 anaconda설치시 환경변수로 설정되므로, cmd(명령프롬프트)..