본문 바로가기

분류 전체보기360

PyQt 혼자 공부 할 때 알아둬야 할 팁들 요약: 1.VsCode의 자동완성 기능 사용하자 (클래스이름,메소드이름,멤버변수 이름) 2.VSCode의 Definition 기능 활용하자 3,정확한 내용은 구글링 및 QT 라이브러리 홈페이지 참고하자 ※ QT 라이브러리 홈피 : Search Results (qt.io) 4. PyQt 의 클래스들은 대부분 상속에 상속에 상속을.. 받는 형태로 구성돼있다는 걸 참고로 알아두자. 1. VsCode를 반드시 사용하자 VsCode 없이는 PyQt 솔직히 공부 못했을 것 같다. VsCode 자동완성 기능이 매우 편리해서 이걸 꼭 활용해야 한다. 1-1) 사용하려는 클래스의 이름을 찾은 후, 에디터 상에 일단 객체를 선언해본다. 예를 들어 내가 QTableWidget 클래스와 관련된 작업을 한다고 가정하면 from.. 2021. 12. 5.
PyQt 사용시 from, import 관련 알아 둘 것 PyQt 모듈에 정의된 클래스 들을 사용하려면 from 또는 import 명령을 사용해야한다. 인터넷에 있는 PyQt 관련 자료, 교재에서 가끔씩 앞에 from, import 부분을 생략하고 소스코드를 올려주는 경우가 있어서 종종 동작이 안될때가 있으니 아래 개념을 꼭 알아두자. 예시1) QTableWidget 클래스를 사용하고 싶은 경우 해당 클래스는 QtWidgets.pyi 안에 정의가 되어있다. QTableWidget 클래스를 사용하려면 방법이 2가지가 있다. 방법1) from PyQt5.QtWidgets import * self.ta1 = QTableWidget(self) 방법2) from PyQt5 import QtWidgets self.ta1 = QtWidgets.QTableWidget(sel.. 2021. 12. 5.
PyQt QLineEdit 키보드 입력값 받기. 입력값 제한하기 (숫자만 넣기,문자만 넣기 등등) 개요 Text Edit 활성화/비활성화/읽기전용 셋팅 관련 메소드들 입력 제한 하기 QLineEdit 관련 이벤트 처리하기(텍스트 변경시 이벤트 발생 등등) 개요 마우스 클릭하면 커서 깜박 거리면서 키보드로 데이터 입력할 수 있는 창 그것을 QLineEidt라고 한다. setText(str) 메소드를 사용해서 text edit에 내용을 유저가 임의로 지정할 수도 있다. text() 메소드를 사용하면 현재 textedit에 입력된 문자열을 출력하고 import sys from PyQt5.QtWidgets import * class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Test") self.setG.. 2021. 12. 4.
PyQt TableWidget (심화2) table pushbutton,combobox 등등 넣기 테이블의 셀에 PushButton, ComboBox,LineEdit 등등 넣기(기본) 테이블의 특정 셀에 존재하는 아이템에 접근 테이블의 셀에 PushButton 넣어서 사용하기(응용,심화) Table에 유저가 데이터 입력할 때, 입력값 제한하기 테이블의 셀에 PushButton, ComboBox,LineEdit 등등 넣기(기본) 여태까지는 셀에 문자열 데이터만 넣어봤는데 셀에다 버튼 등도 넣을 수가 있다. 아래 메소드를 사용하면 된다. def setCellWidget(self, row: int, column: int, widget: QWidget) -> None: ... 참고로, 테이블의 특정 셀에 존재하는 아이템에 접근 할 때 사용하는 메소드가 2개 있는데 def item(self, row: int,.. 2021. 12. 3.
PyQt TableWidget (심화1) Selection Mode에 대하여 현재 선택된 셀의 행번호 혹은 열번호 파악하기 특정 셀 선택해서 삭제하기(문제점 설명) 특정 셀 선택해서 삭제하기(해결책) 특정 셀의 속성 지정하기 (수정불가, 사용불가, 선택불가,drag&drop 불가 등등) (flag와 연관됨) Selection Mode에 대하여 마우스로 테이블을 선택했을 때, 선택되는 대상을 무엇으로 할지 고를 수 있다. 셀을 고르거나, 행을 고르거나, 열을 고르거나 할 수 있다. 아래 보면 이해 될거라 믿는다. def selectionBehavior(self) -> 'QAbstractItemView.SelectionBehavior': ... class SelectionBehavior(int): SelectItems = ... # type: QA.. 2021. 12. 3.
PyQt. TableWidget(기본) Table 기본 형태 생성 행 추가하기 & 추가된 행에 텍스트 채워넣기 테이블의 마지막에 행 한개씩 추가하기 테이블의 마지막에 행 1개씩 추가하기(2) 특정 셀에 접근하기. (해당 셀의 문자열 받아오기, 해당 셀의 문자열 set하기) 아무 것도 추가하지 않은 비어있는 셀에 관해 유의할 점 테이블 행 삭제 테이블 행 전부 삭제 Table 기본 형태 생성 import sys from PyQt5.QtWidgets import * class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() def setupUI(self): self.setGeometry(800, 200, 600, 300) self.ta1 = QTableWid.. 2021. 12. 3.
파이썬. 클래스 상속과 생성자에 대하여. 그리고 super에 대하여 자식 클래스에서 따로 생성자를 선언하지 않으면 자식 객체를 생성하면 자동으로 부모클래스의 생성자를 실행한다. class paraent(): def __init__(self,input1): print("부모 생성자 실행. 인풋 파라미터는") print(input1) class child(paraent): pass test_var=child("안녕") 근데 위 예시를 보면, paraent클래스의 생성자가 실행되려면 객체를 만들때 input 객체 1개가 필요하다. 따라서, test_var=child() 코드를 이렇게만 짜면 argument가 모자라다는 에러가 발생한다. 왜냐면 child 클래스는 따로 생성자를 정의하지 않았기 때문에, default로 paraent의 생성자를 호출해야하는데 paraent의 생성.. 2021. 12. 2.
파이썬 클래스. 구조체 1. 클래스 선언을 하되 선언만 해두고 안에 새부내용 없을 경우 pass를 사용 class Calculator(): pass 2. 생성자가 없는 타입의 클래스 클래스를 선언할 때 생성자가 필수인 것은 아니다. class Test1(): var1=1 var2=2 var3=3 def fun1(self,input1,input2): print("출력값은 input1= %d, input2=%d" %(input1,input2)) print("var1값은 %d " %self.var1) #참고중요사항 print(var1값은 %d " %var1) #이렇게하면 실행안된다. 클래스 안에 var1 선언돼있지만 self 안붙이면 인식못한다. test_var=Test1() test_var.fun1(5,6) #출력결과: 출력값은 .. 2021. 12. 2.
PyQt . Context Menu (마우스 우클릭 메뉴 만들기) 4.6 컨텍스트 메뉴 - 공학자를 위한 PySide2 (wikidocs.net) 취미로 하는 프로그래밍 !!! :: PyQt5 -- context menu 사용법 3가지 (QTableWidget 사용함) (tistory.com) 위 두사이트 참고하여 공부해서 정리할 것 context menu란? 마우스 오른쪽 눌렀을 때 저렇게 메뉴 띄우는 기능을 말한다. import sys from PyQt5.QtWidgets import * from PyQt5 import QtCore class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() def setupUI(self): self.setGeometry(800, 200, 800.. 2021. 12. 2.