일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- cocoapods
- UIButton
- graph
- 그래프
- TableView
- button
- library
- ios
- modal
- UITableView
- Xcode
- charts
- Android
- Chrats
- ui
- 어플리케이션
- PyQt
- 라이브러리
- PyQt5
- Storyboard
- Chart
- androidstudio
- alamofire
- Apple
- 개발자
- Swift
- 개발
- Python
- UIKit
- kotlin
- Today
- Total
목록전체 글 (277)
Jiwift
# 비활성화 self.[위젯 이름].setDisabled(True) # 활성화 self.[위젯 이름].setEnabled(True)
[Python/PyQt] 프레임과 배경을 없애기 # 배경 없애기 self.setAttribute(Qt.WA_TranslucentBackground) # 이전 글에서 배운 프레임 없애기 self.setWindowFlag(Qt.FramelessWindowHint) show() 이전에 넣으면 없어진다.
[Python/PyQt] 프레임 타이틀 바(Title Bar) 없애기 self.setWindowFlag(Qt.FramelessWindowHint) 타이틀 바를 안 보이게 하는 메서드. 타이틀 바가 없어진다기보다는 프로그램의 프레임이 없어진다. 그래서 윈도우에서 제공하는 기본 기능들을 사용할 수 없다. 닫기, 최소화, 최대화, aero snap 등은 직접 구현해야 한다. 찾으면 구현 법은 나온다.
[Python/PyQt] 위젯(Widget)을 배치할 때 레이아웃을 꼭 적용해야 하는 이유 제목은 어떻게 보면 반은 맞고 반은 아닌 이야기이다. 위젯을 배치하고 레이아웃 설정을 해주면 창의 크기가 변경되어도 그 안에 위젯들은 유연하게 변화가 생긴다. 하지만 창의 크기를 조절할 수 없는 프로그램이라면 필수는 아닐 수 있다고 본다.
from PyQt5.QtWidgets import QMessageBox QMessageBox.information(self, "타이틀입니다.", "안녕하세요. information 메세지 입력입니다.") QMessageBox.about(self, "타이틀입니다.", "안녕하세요. about 메세지 입력입니다.") QMessageBox.warning(self, "타이틀입니다.", "안녕하세요. warning 메세지 입력입니다.") QMessageBox.critical(self, "타이틀입니다.", "안녕하세요. critical 메세지 입력입니다.") QMessageBox.question(self, "타이틀입니다.", "안녕하세요. question 메세지 입력입니다.") 메세지를 표현하는 가장 기본
self.[스택위젯 이름].setCurrentIndex(스택 페이지 번호) 스택 페이지를 입력해주면 간단하게 페이지를 이동할 수 있다.
# 위젯 현재 값 self.[슬라이더, 다이얼 위젯 이름].value() # 위젯이 가질 수 있는 가장 작은 값 self.[슬라이더, 다이얼 위젯 이름].minimum() # 위젯이 가질 수 있는 가장 큰 값 self.[슬라이더, 다이얼 위젯 이름].maximum() # 위젯이 한번 움직이거나 방향키를 눌러 이동할 수 있는 최소한의 값 self.[슬라이더, 다이얼 위젯 이름].singleStep() # 위젯이 빠르게, 크게 움직이다면 이동할 수 있는 값 self.[슬라이더, 다이얼 위젯 이름].pageStep() 슬라이더에 설정된 옵션 값들을 받아온다. 설정 값들은 Qt Designer에서도 설정 가능하다. # 위젯이 움직이면 기능 수행 self.[슬라이더, 다이얼 위젯 이름].sliderMoved.co..
리스트 위젯(Widget)과 뷰(View)가 있는데 위젯이 더 간편한 것 같다. 사용하는 방법은 같으나 편리함 정도 차이가 있다. # 한번 클릭 self.[리스트위젯 이름].itemClicked.connect([기능]) # 더블 클릭 self.[리스트위젯 이름].itemDoubleClicked.connect([기능]) # 항목 변경 self.[리스트위젯 이름].currentItemChanged.connect([기능]) 리스트 위젯 클릭 이벤트를 담당하는 메서드 # 선택된 리스트위젯 아이템 번호 self.[리스트위젯 이름].currentRow() # 선택된 리스트위젯 객체 반환 self.[리스트위젯 이름].currentItem() # row번째 리스트위젯 객체 반환 self.[리스트위젯 이름].item(r..
self.[라인에디트 이름].text() 라인 에디트 텍스트 받아오기 self.[라인에디트 이름].setText(넣을 내용 str만 가능) 라인 에디트 텍스트 변경하기 계산기 예시 # 버튼 클릭 메서드 정의 self.pushButton_2.clicked.connect(self.sum) self.pushButton_3.clicked.connect(self.reset) def sum(self): # 라인 에디트에서 수를 받아옴 a = self.lineEdit.text() b = self.lineEdit_2.text() # 더하기 진행 int 형식으로 변환 필요 sum_result = int(a) + int(b) # 레이블에 출력 self.label.setText(str(sum_result)) def rese..
self.[레이블위젯 이름].text() 텍스트 내용받아오기 str 형식으로 받아옴 self.[레이블위젯 이름].setText(넣을 내용 str만 가능) labe 텍스트 변경 사용 예시 # 버튼 클릭 self.pushButton.clicked.connect(self.one) self.pushButton_2.clicked.connect(self.two) # Label 내용들 변경 def one(self): self.content = self.label.text() def two(self): self.label_2.setText(self.content) one 함수에서 label 텍스트 내용을 가져오고 two 함수에서 label_2로 가저온 내용을 넣는다.
self.[체크박스 이름].stateChanged.connect(기능) 라디오 버튼과 같이 체크박스를 누르면 수행하는 기능을 추가하면 된다. self.[체크박스 이름].isChecked() isChecked()를 사용해서 상태 값을 받아올 수 있다. # 체크 풀기 self.[체크박스위젯 이름].setChecked(False) # 체크 하기 self.[체크박스위젯 이름].setChecked(True) 체크박스는 라디오 버튼과 다르게 다중 선택이 가능. 사용 예시 # 놀이를 고르는 체크 박스 두개 self.checkBox.stateChanged.connect(self.work) self.checkBox_2.stateChanged.connect(self.work) # 음식을 고르는 체크 박스 두개 self.c..
setText(), text()를 통해서 라디오 버튼 텍스트도 읽고 쓰기 가능 라디오버튼은 다중 선택이 불가능합니다. 라디오 버튼 토글 클릭 # 둘다 사용 가능 self.[라디오위젯 이름].toggled.connect(기능) self.[라디오위젯 이름].clicked.connect(기능) 라디오 버튼 자동으로 체크하기 self.[라디오위젯 이름].setChecked(True) 마우스가 아닌 다른 기능 수행중에 코드로 클릭되게 할 수 있음 체크 여부 확인 self.[라디오위젯 이름].isChecked() 체크 여부를 확인하여 if문등 사용 가능 True False로 알려줌
self.[버튼위젯 이름].clicked.connect(기능) 위 메서드를 통해서 버튼이 눌렸을 때 원하는 동작을 수행할 수 있다.
처음에 UI 레이아웃을 작업할 때는 QFrame을 사용하지 않고 진행했다. 하지만 UI가 복잡해지면서 구역별로 묶거나 반복되는 배치를 사용할 때 frame 단위로 관리하는 것이 더 편하다고 느껴지고부터는 계속 frame을 사용했다. html에서 div를 사용하는 것처럼 pyqt에서 frame으로 틀을 잡는 게 관리에서 편리하다. frame 추가 후 각각 레이아웃, 마진, 스페이스 등 구역을 나누어서 레이아웃을 적용하면 더 편리한 개발이 될 것이다. 디자인을 보고 나뉘는 구역 혹은 관리하기 쉬운 구역을 생각해서 frame을 만들어 안에 다른 위젯들을 배치하면 된다. 사용법은 따로 없고 어떻게 어디서 구역을 나누어주는지 익숙해지는 노력이 더 필요하다.
위가 원래 UIProgressView 아래가 라이브러리 적용 Smitters/GradientProgress: A gradient progress bar (UIProgressView). (github.com) GitHub - Smitters/GradientProgress: A gradient progress bar (UIProgressView). A gradient progress bar (UIProgressView). Contribute to Smitters/GradientProgress development by creating an account on GitHub. github.com 팟 설치 pod 'GradientProgress' 사용법 사용을 원하는 프로그래스바를 배치. 비교용으로 두 개를 설치..
개요 Python으로 작업한 프로그램을 배포하기 위해서는 실행 파일로 만들어야 한다. 다른 사용자에게 주는 것이 아닌 나 혼자 어디서든 사용하기 위해서도 실행 파일로 바꾸는 게 좋다. Python 배포파일을 생성하기 위한 방법은 아래 두 가지 방법이 있다. PyInstaller cx_freeze 이 글에서는 PyInstaller를 다룬다. ※ 읽기 전에 주의 개인적으로 기억하려고 남긴 것. 가독성이 많이 떨어진다. 더 좋은 글들이 많다. PyInstaller 공식 사이트 "PyInstaller는 파이썬 응용 프로그램과 모든 종속성을 단일 패키지로 번들로 묶는다." 공식 사이트 내용을 번역한 것이다. 쉽게 생각해서 프로젝트 작업을 하면서 사용하는 ui, 이미지, 아이콘 등 다 같이 배포하기 쉽게 묶어준다...
[Python/PyQt] PyQt UI 생성 및 연결 | Python GUI 프로그램 원래 작성된 문서를 티스토리로 옮기는 문서입니다. 개요 PyQt란, Qt의 레이아웃에 Python의 코드를 연결하여 GUI 프로그램을 만들 수 있게 도와주는 프레임워크를 말한다. 즉 UI는 PyQt 프레임워크가 Qt 위젯 및 UI를 구현하게 도와주고, 내부 기능을 Python을 이용한다. UI 사용 구조 그림을 제대로 그린 지 모르겠지만 큰 틀로 보면 이렇다... 다음 설명들과 함께 보면 이해 갈 것으로 예상..ㅎ UI 생성 방법 종류 로직은 python으로 구현하고 UI는 PyQt를 사용하는 것은 알겠는데, 어떻게 화면을 구현해??라고 처음에 생각이 들었다. 우선 UI를 구현하는 방법은 두 가지가 있다. python ..
기존에 벨로그에 작성한 글을 옮김. PyQt(PySide)를 공부하면서 배운 정보나 기술을 정리하기 위해서 글을 작성하기 때문에 알고리즘, 글 내용이 부족할 수 있다. 이론 적인 부분은 참고만 하고 PyQt가 어떻게 사용 가능한지 보는 정도로 읽어주시면 감사합니다. 잘못된 정보는 바로 댓글로... 3줄 요약 1. VSC 설치하기 2. Anaconda 설치하기 3. PyQt 설치하기 주의 - 틀린 내용이 있을 수 있습니다. - 사용한 위주로 정리되었습니다. - 개인적인 용도로 필력 수준이 떨어지고 남들이 보기 불편합니다. - 코드가 정리되지 못하고 긴게 많습니다. - 더 좋은 방법은 많습니다. - 더 좋은 자료 많습니다. 1. PyQt 더보기 작성일자 2021-06-28 작성자 : 김지태 참고 1 : ht..
Swift UIColor Picker (ralfebert.com) Swift UIColor Picker www.ralfebert.com 위에 보이는 값들을 사용해서 Swift에서 사용 가능한 UIColor로 변환해줍니다. 아래 코드 블록은 변환된 결과 예시입니다. 보시는 것과 같이 다양한 방법으로 제공해줍니다. #colorLiteral(red: 1, green: 0.8, blue: 0, alpha: 1) /* #ffcc00 */ UIColor(hue: 0.1333, saturation: 1, brightness: 1, alpha: 1.0) /* #ffcc00 */ UIColor(hue: 48/360, saturation: 100/100, brightness: 100/100, alpha: 1.0) /* #..
오늘은 위와 같이 좌우로 움직이는 CollectionView를 만들어보려고 합니다. 평소에 저는 이 방법을 검색할 때 Horizontal Card View 이런 식으로 찾았습니다. 하지만 어느 날 우리 빛과 같은 종권님 블로그에서 Carousel이라는 단어로 글로 올리신 걸 보고 찾아봤습니다. 왼쪽이 Carousel 결과이고 오른쪽이 horizontal card view입니다. 확실히 검색어에 따라서 원하는 정보량이 달라지긴 하네요. 이렇게 용어를 하나 배웠습니다. 하지만 오늘은 종권님 블로그에 작성된 내용을 이용해서 진행해보려고 합니다. [iOS - swift] 1. 스크롤 영역을 암시해주는 Carousel 구현 방법 (UICollectionView, 수평 스크롤 뷰, paging 구현) (tistor..
iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션큐의 이해 대시보드 - 인프런 | 강의 (inflearn.com) iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션 동시성(Concurrency)프로그래밍 - iOS프로그래밍에서 필요한 동기, 비동기의 개념 및 그를 확장한 GCD 및 Operation에 관한 모든 내용을 다룹니다., - 강의 소개 | 인프런... www.inflearn.com 나는 비동기 처리를 어느 정도 할 수 있다고 생각했다. 가끔 미디엄이나 티스토리에서 보이는 괜찮은 처리법들이 있지만 기존 사용하던 방법이 편하고 내가 작성하는 것보다..
안녕하세요. 이번에는 디자인 변경에 힘을 많이 주었습니다. 애플리케이션 기능을 생각하면 디자인이 뭐가 필요한가.. 싶을 정도로 기능이 없는 상태입니다. 하지만 지인이 디자인이 너무 안 좋다.....라는 말을 많이 해주었고 지인과 같이 일하는 사람들에게 소개를 해도 디자인에서 오는 신뢰감이 많이 떨어질 것 같다고 판단해서 도전하기로 했습니다. 아직은 디자인을 생각하면 '기존 디자인의 사용성', '애플이 원하는 기준' 이런 것만 생각해봤지 전체 컨셉?적인 디자인을 생각하는 것은 너무 어렵더라고요.. 디자이너분들 진짜 리스펙 합니다. 하지만 사용자의 요청이 들어왔고, 제가 생각해봐도 기능을 제공하는 데 있어 신뢰를 주는 것 중 하나는 디자인이라고 생각되어서 변경을 시도해봤습니다. (변경을 시도했으나 맞는 방향..
라이엇 모바일 어플리케이션에서 스트리밍 시청이 새로 생겼다고 한다. 처음에는 관전이 되는 줄 알고 잘 못 이해한 상태로 어플을 업데이트받았다. 가운데 스트리밍 탭을 누르면 '트위치' 스트리밍 목록이 나온다. 관전이 아니라 방송 스트리밍이었다. 롤을 처음 할 때부터 게임은 아니더라도 관전이 모바일에서 가능하면 얼마나 좋을까 생각했었다. 리그 오브 레전드는 엔진도 자기들이 만들어서? 쓰는 것으로 알고 있어서 모바일까지 커버하는 것은 알 수 없으나 새로운 게임을 유니티로 만든 거 보면 모바일은 지원하지 않는 것 같다. 정말 내가 생각한 대로 '관전' 기능이 출시했다면 살펴볼 것도 많았을 탠데 아쉬움을 뒤로했다. 한 가지 새로운 점은 스트리밍 탭에서 새로고침을 하기 위해서 스크롤을 내리면 로딩을 수행한다. 사용..
오늘은 Array로 이루어진 JSON을 보내려고 합니다. 어떻게 생긴 놈이냐 하면 [ { name: 김지태, age: 26, city: Seoul }, { name: 팀쿡, age: 58, city: Designed by Apple in California }, { name: 일론 머스크, age: 18, city: Mars } ] 위와 같이 생긴 데이터입니다. 내가 생각한 데이터 형식이랑 다르지만.. 서버에서 이렇게 전송하라고 했으니 해야지요.. 저는 키와 밸류로 이루어진 데이터만 다루다 보니.. 가끔 새로운 양식이 나오면 당황스럽더라고요 ㅋㅋ struct Person { let name: String let age: Int let city: String } 만약에 저 데이터를 수신받는다고 생각하면 P..
정말 간단하게 한줄로 알아보기. 1. Alamofire 깃 허브 Alamofire/Alamofire: Elegant HTTP Networking in Swift (github.com) GitHub - Alamofire/Alamofire: Elegant HTTP Networking in Swift Elegant HTTP Networking in Swift. Contribute to Alamofire/Alamofire development by creating an account on GitHub. github.com 2. Swift에서 HTTP 통신을 쉽게 사용할 수 있게 만든 라이브러리이다. 깃 허브 레포지토리를 보면 언어가 100% Swift이다. 3. Objective-C를 위한 AFNetworkin..
카카오톡에 새로운 기능인 프로필 공감 스티커가 생겼다. 어떤 기능인지 궁금해서 친구들과 눌러보았다. 일단 기능은 모바일과 PC 둘다 지원한다. 맥북을 사용하면서 오토마우스를 사용했다. inket/Autoclick: A simple Mac app that simulates mouse clicks (github.com) GitHub - inket/Autoclick: A simple Mac app that simulates mouse clicks A simple Mac app that simulates mouse clicks. Contribute to inket/Autoclick development by creating an account on GitHub. github.com 초당 20번 클릭을 진행하니 ..
오늘은 위에 동작하는 모습과 같이 Custom Modal을 만들어 보겠습니다. 개발자마다 만드는 방법이 다양하게 있고 제가 사용하는 방법도 쉽게 만들 수 있는 방법이라 이미 아시겠지만 기록 차원에서 작성합니다. 관련된 검색어로는 custom modal, half modal, modal 등이 있으니 찾아보시면서 원하는 결과를 얻으시면 될 것 같습니다. 처음 이걸 만든 이유는 그때 당시 실력이 없던 저는 남들이 만든 라이브러리를 사용했지만 원하는대로 디자인을 변경하는 부분에서 어려움을 겪었고 half-modal과 같은 방식으로도 구현이 필요해서 연습겸 만들어보자! 라는 생각으로 진행했습니다. 요즘은 UISheetPresentationController | Apple Developer Documentation..
사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 04 — Jiwift (tistory.com) 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 04 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 03 — Jiwift (tistory.com) 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 03 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 02 — Jiwift (tis jiwift.tistory.com 사진의 숫자 입력 2.0 출시, 직업 입력 기능을 추가해서 2.0으로 버전을 올렸습니다. 다른 추가적인 부분은 지난 글에서 보여드린 시작 숫자 변경 UI입니다. 왼쪽부터 자동 입력 기능 선택된 사진화면, 자동 입력 시작 숫자 입력, 직접 입력 선택된 사진들 화면입니다. 다음 버전 예정..
사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 03 — Jiwift (tistory.com) 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 03 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 02 — Jiwift (tistory.com) 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 02 사진에 숫자 입력 - 나만의 어플리케이션 개발 일지 01 — Jiwift (tis jiwift.tistory.com '선택된 사진들' 화면을 새롭게 디자인 기존에 시작 숫자를 입력할 수 있는 부분을 숨기고 버튼으로 변경 새로운 숫자 입력 적용 후 동작 모습 한 화면에 기능을 모두 넣지 않으면서 각 기능 집중도를 높였다고 혼자서 생각 중 현재는 원하는 숫자부터 자동으로 1씩 증가하는 기능만 있어서 각..
[iOS/Swift] Charts 그래프 라이브러리 x축 선, 라벨 없애기 | charts graph xAxis draw Enabled // x축 Grid self.myBarChartView.xAxis.drawGridLinesEnabled = false // x축 라벨 self.myBarChartView.xAxis.drawLabelsEnabled = false // x축 선 self.myBarChartView.xAxis.drawAxisLineEnabled = false 오늘은 X축(xAxis) 선과 라벨을 위 코드를 이용해서 없애겠습니다. 코드만 필요하신 분들은 위 코드를 복사하시면 되고 아래는 간단하게 설명을 하도로 하겠습니다. xAxis.drawGridLinesEnabled X축을 기준으로 세로로 길..