본문 바로가기

전체 글377

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.
국민연금 수령 시기. 연기 할지 말지 따져보자 국민연금 받는 기간 1년 미루면 대신 받는 금액이 7.2% 증가함 최대 5년까지 미룰 수 있음 미루는게 이득일까 일찍 받는게 이득일까 결론은 내가 몇 살까지 사냐에 따라 달라지는데 앞으로 15년 이상 살 수 있다면 미루는게 이득임 오래살 수 있다면, 오래 살 수록 미루는게 이득임 근데 미뤘는데 15년 내에 죽으면 손해볼 수 있음 1년 미룬 사람은 앞으로 15년 이상 살 수 있으면 미루는게 이득 2년 미룬 사람은 16년 이상 살 수 있으면 미루는게 이득 3년 미룬 사람은 17 년 4년은 18년 5년은 19년 원래 연금 수령액이 예를 들어 1년에 100만원이라고 치자. 100만원을 15년 동안 받는다면? 총 1500만원을 받는다. 만약 1년을 미뤘다면 ? 첫해에는 100만원을 못받지만 대신 그 다음해부터 1.. 2021. 12. 2.
PyQt 클래스 상속에 대하여 파이썬. 클래스 상속과 생성자에 대하여. 그리고 super에 대하여 (tistory.com) (위의 글 참고하면 배경지식 습득가능) PyQt 모듈에는 매우 많은 다양한 클래스가 사전에 정의되어있음 이런 클래스에 정의된 메소드 중에, 유저가 메소드 오버라이드를 해서 재정의 해서 써야하는 케이스가 종종있다. 그 경우, PyQt에서 제공하는 클래스를 상속 받아서 임의의 클래스를 만들어야하는데 아래 예시를 보자. QListWidget 클래스를 상속받아서 drop_list 라는 임의의 클래스를 정의하고 있다. class drop_list(QListWidget): def __init__(self,input): super(drop_list,self).__init__(input) #super().__init__(inp.. 2021. 12. 1.
메소드 오버라이딩/ 오버로딩 개념 메소드 오버로딩이란 클래스 A 가 있고, 클래스 A를 상속받아서 만든 클래스 B가 있을 때 클래스 B는 클래스 A를 상속받았기 때문에, 클래스 B 에서는 클래스 A에 정의된 fun_A를 호출 할 수 있음. 근데 이 때, 클래스 B 에서 fun_A를 다시 재정의해서 원래 클래스 A에 정의된 fun_A랑 별개로 기능하는 펑션을 만들어 쓰는걸 메소드 오버로딩이라고 한다. 즉, 자식이 부모의 메소드를 그대로 안쓰고 다시 재정의해서 쓰는걸 말한다. class paraent(): def fun_a(self): print("나는 부모의 펑션이다.") class child(paraent): pass class child_override(paraent): def fun_a(self): print("나는 물려받은거 재정의.. 2021. 11. 28.
LG 모니터 구매후기 27인치 QHD 27QN600 모니터를 살 일이 생겨서 어떤 모니터를 살까 고민하다가 다음과 같은 스펙으로 사기로 결정했다. 27인치. QHD. IPS 패널 26만원 정도하는 한성 모니터 와 32정도하는 lg전자 27qn600 두개를 놓고 비교하다가 lg 전자제품을 샀다. 이유는 케이블 꼽는 방향 때문이었다. 한성제품은 모니터 케이블 꼽는 방향이 아래쪽이고 lg전자 제품은 뒷쪽이었다. 케이블 꼽는 방향이 아래쪽으로 돼있으면 케이블 꼽을때 모니터를 들추거나 내가 고개를 숙여야되는데 난 그게 너무 짜증난다. 불량화소도 없고 동작 잘된다 좋다. 높이가 상하조절 안되는게 살짝 아쉽지만 큰 상관 없을듯 FHD 살까 QHD 살까가 고민이었는데 FHD를 안써봐서 뭐가 더 나은지 모르겠다. 어쨋거나 나는 이 제품 써보니까 만족스러우니 잘샀다고 생각.. 2021. 11. 28.