Computer 비관심 45

플러터에서 자식 위젯의 메서드 부모에서 호출하기

플러터는 위젯으로 구성되어 있다. 그렇기 때문에 위젯간의 소통을 할 수 있는 방법을 아는 것이 중요하다. 위젯간의 소통 방법들을 공부하지 않으면 분리되지 않은 거대 위젯으로 앱이 구성이 될 것이다. 부모의 버튼을 눌렀을때 자식 스크롤 위젯이 자동으로 맨 밑까지 내려오게 하는 기능을 구현해야 했다. 위젯이 나누어지지 않았을 때는 문제가 없었지만 위젯이 부모와 자식으로 나누어 지면서 버튼과 리스트가 분리 되었다. 이때 부모가 자식의 메서드를 호출해서 그 메서드가 자식을 움직이게 만드려면 어떻게 해야 할까? StackOverflow에서 두가지 방법을 찾을 수 있었다. 첫번째는 메서드를 초기화한 클레스의 인스턴트를 전달하는 방법 1. 클레스에 메서드를 초기화 해서 자식 위젯에 인스턴트를 전달한다. 2. 자식위젯..

firebase SDK 없이 flutter에서 firestore에 post요청 보내기

실시간 기능도 필요 없어서 SDK를 사용하고 싶지 않았다. 그냥 간단하게 요청하여 필요한 데이터를 json현태로 받고 싶었다. 그런데 flutter 자료가 아직 많지 않아서 해맷다. 1. 일단 http 요청을 하기위해서 http모듈을 임포트 하였다. import 'package:http/http.dart' as http; 2. 아래와 같이 GET 요청을 보내게 되면 모든 documents를 불러오게 된다. https://firestore.googleapis.com/v1/projects/프로젝트명/databases/(default)/documents 다큐먼트를 모두 불러온 뒤 클라이언트에서 필터링하면 시간도 엄청나게 걸릴 뿐더러 차후 과금에 문제가 생긴다. 3. 파이어베이스의 structuredQuery를..

파이썬으로 이미지 다운로드 하기

파이썬으로 이미지를 다운받으면 반복적인 이미지 다운로드 작업을 자동화 할 수 있다. 이 코드는 단순히 다운로드 하는 작업만 진행하지만 selenium이나 requests를 잘 섞어서 사용하면 자동으로 특정한 페이지의 이미지들을 다운 받을 수 있도록 만들 수 있다. ## 필요한 모듈을 불러온다. import requests # to get image from the web import shutil # to save it locally ## 다운로드할 이미지 URL image_url = "http://~~~~.jpg" filename = image_url.split("/")[-1] # 스트림으로 이미지 얻어옴 r = requests.get(image_url, stream = True) # 이미지가 잘 받아졌..

플러터에서 firebase_auth와 flask 서버 같이 사용하기.

이렇게 사용하면 아래와 같은 장점이 있을 것 같다. 1. 사용자 개인정보를 직접 저장하고 있지 않아도 된다. - 개인정보의 보안이나 관리가 어렵다. 2. 서버에서 구현하기 귀찮은 모바일확인, 페이스북&구글로그인 등을 쉽게 구현 가능하다. 3. firestore의 단점인 과금 문제를 보완 가능. - 정말 필요한 채팅서비스에서만 firestore를 사용하면 될듯. 나머지는 flask SQL서버에 저장. 4. 파이썬을 서버로 사용하기 때문에 데이터처리에도 유용하지 않을까.....? 플러터에서 1. firebaseAuth로 로그인을 함 2. firebaseAuth로 아이디 토큰을 받음 3. http post로 토큰을 서버로 보냄. 서버에서 1. post로 온 토큰을 firebase의 decoded_token =..

2. 깃허브에 플러터 올리기

1. 깃이 설치되어있는지 확인 git --version 깃 버전이 너무 낮아서 다시 설치 해야할 것 같다. 2. 깃 설정 보기 (로그인이 되있는지도 확인 할 수 있음) git config --list 아래 화면 처럼 user.email에 보면 로그인이 되어있는 것을 확인 할 수 있다. 3. 깃 레포지터리 초기화하기 git init 4. 현재 폴더에 있는 파일 추가하기 git add . 5. 커밋하기 git commit -m"first commit" 6. main branch로 이름을 바꿔줌 git branch -M main 1. 깃허브에서 새로운 레포지토리 만들기 2. 만들어진 깃허브레포지토리의 url복사 3. 리모트 오리진에 추가 git remote add origin https://github.com..

[pyqt5] 기본레이아웃 만들기

아래의 화면은 flutter 공식홈페이지에서 가져왔다. 플러터의 튜토리얼을 이용한 이유는 개념이 비슷하기 때문이다. (이 개념은 html로 따지면 div에 이미 flex박스의 flex-direction: 속성이 걸려 있는 것과 같다. 하지만 플렉스박스 이전에 div를 float해서 레이아웃을 만드는 법과는 다르기 때문에 개념의 차이점을 정확히 아는게 중요할 것 같다.) 아래의 화면은 Row와 Column 위젯이 엮여져서 만들어 졌다.(nested) 화면을 만들때 즉 큰 레이아웃부터 작은 레이아웃으로 만들어 나가면 된다. 위의 로우는 Row는 하나의 칼럼과 하나의 이미지로 구성되어 있다. 그리고 칼럼은 텍스트, 텍스트, 로우, 로우 위젯으로 구성되어 있다. 그렇다면 이러한 방법을 어떻게 PyQt5에 적용 ..