'Web. 기타 언어/android관련 (python, java 등)'에 해당되는 글 2건

  1. 2020.05.07 2. python 모든명령어 설명집
  2. 2020.05.07 1. python 용어. 정의. 관련tool. library

0. 한글처리
    - 참조url : https://syriusta.tistory.com/14
    - 파이썬 코드 첫문장에 아래와 같이 한다.
       #!C:\Python34\python.exe
       #-*- coding: utf-8 -*- <-- utf-8로 문자를 처리하는 부분.

 

1. app.exec_();
    - 이벤트 루프 (Event Loop)
    - QApplication클래스의 객체를 생성한 후 exec_ 메서드를 호출하는 순간 생성된다.
    - 한번 생성된 이벤트 루프는 사용자가 윈도우를 닫을 때까지 실행되면서 위젯에서 발생한 시그널을
       처리하는 슬롯을 호출하는 역할을 한다.

 

2. Widget(위젯)
    - 사용자 인터페이스(UI, 화면)을 구성하는 핵심 요소이다.
    - QT Designer 에서 사용되는 객체(label, edit, button...)들을 의미한다.

 

3. slot (슬롯)
    - PyQt에서는 특정 시그널(event)이 발생했을 때 호출되는 함수 또는 메서드를 slot이라고 한다.

 

4. dialog (다이알로그)
    text,ok = QInputDialog.getInt(self, "나이", "나이를 입력하시오."); #int형
    text,ok = QInputDialog.getDouble(self, "나이", "나이를 입력하시오."); #double 형
    text,ok = QInputDialog.getText(self, "나이", "나이를 입력하시오."); #문자형
    text,ok = QInputDialog.getItem(self, "나이", "나이를 입력하시오."); #항목 선택
 

4.1 MessageBox (메세지 box)
    QMessageBox.about(self, "제목명", "상세내용"):

5. connect
   - 예) btn.clicked.connect(clicked_slot);
   - 시그널(event)과 슬롯(function, method)을 이벤트 루프를 생성하기 전에 연결(connect)한다.
     . 버튼 클릭 시 clicked_slot function을 호출 하도록 연결(connection)을 설정한다.
     . 설정 후 사용자가 btn 을 클릭 시 clicked_slot function을 호출 및 수행 한다.


6. class
    - class name(inherit_Calssname)
    - name : class name
    - inherit_Calssname : 상속class name

 

7. __init__
    - class 생성자 method
    - 예) def __init__(self)
          super().__init__();

 

8. 외부 모듈
    1. 브라우져 실행하기
       - import webbrowser
         url = "http://naver.com";
         webbrowser.open(url);

 

8. visible 객체 생성 1
    1. button생성
       - btnSave = QPushButton("저장", self); #버튼 객체 생성
         btnSave.move(20, 50); #move() : 버튼 위치 이동
         btnSave.clicked.counect(self.btnSave_clicked); #버튼 slot 연결

    2. Label 생성
       - self.label = QLabel("Message : ", self);
         self.label.move(20, 20);
         self.label.resize(200, 20)

    3. Edit 생성
       - self.lineEdit = QLineEdit("", self);
         self.lineEdit.move(20, 20);
         self.lineEdit.textChanged.connect(self.lineEditChanged); #텍스트값이 변경될 때 발생
         self.lineEdit.returnPressed.connect(self.lineEditReturnPressed); #에터 키를 눌렀을 때 발생
    4. Radio button 생성
       - 생성
         self.radio1 = QRadiobutton("항목1", self)
         self.radio1.move(20, 20);
         self.radio1.setChecked(True);
         self.radio1.clicked.connect(self.radioButton_clicked);
         self.radio1 = QRadiobutton("항목1", self)

         self.radio2.move(20, 40);
         self.radio2.setChecked(True);
         self.radio2.clicked.connect(self.radioButton_clicked);
         self.radio2 = QRadiobutton("항목2", self)
     - 클릭된 radion 알아내기
         def radioButton_clicked(self):
             msg = "";
             if self.radio1.isChecked():
                msg = "항목1 선택";
             if self.radio2.isChecked():
                msg = "항목2 선택";
     5. checkbox 생성
        - 생성
          self.checkBox1 = QCheckBox("항목1", self);
          self.checkBox1.move(20, 20);
          self.checkBox1setChecked(True);
          self.checkBox1.clicked.connect(self.checkBoxStateChanged);

          self.checkBox2 = QCheckBox("항목2", self);
          self.checkBox2.move(20, 40);
          self.checkBox2setChecked(True);
          self.checkBox2.clicked.connect(self.checkBoxStateChanged);

      - 클릭된 radion 알아내기
         def radioButton_clicked(self):
              msg = "";
              if self.checkBox1.isChecked():
                 msg = "항목1 선택";
              if self.checkBox2.isChecked():
                 msg = "항목2 선택";

6. QGroupBox 생성
    - 생성
        groupBox = QGroupBox("항목 그룹", self);
        groupBox.move(10, 10);
        groupBox.resize(150, 80);
    - 참고
       radio을 QGroupBox위에 위치 하기 위해서는 QGroupBox를 먼저 생성 후 radio을 만들어야 한다.
      순서가 바뀐 경우 radio button이 여러게 동시 선택된다.

 

7. QSpinBox 생성
    - 생성
       self.spinBox = QSpinBox(self);
       self.spinBox.move(40, 20);
       self.spinBox.resize(60, 20);
       self.spinBox.valueChanged.connect(self.spinBoxValueChagned);
    - 값 얻기
       def self.spinBoxValueChagned(self):
            val = self.spinBox.value();

 

9. visible 객체 생성 2
    0. 참고url : https://m.blog.naver.com/sisosw/221419144691
       1. QTableWidget 생성
          - 생성
            self.tableWidget = QTableWidget(self);
            self.tableWidget.resize(400, 300);
            self.tableWidget.setRowCount(2);
            self.tableWidget.setColumnCount(2);
            self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers);

            self.tableWidget.setItem(0, 0, QTableWidgetItem("(0,0)"));
            self.tableWidget.setItem(0, 1, QTableWidgetItem("(0,1)"));
            self.tableWidget.setItem(1, 0, QTableWidgetItem("(1,0)"));
            self.tableWidget.setItem(1, 1, QTableWidgetItem("(1,1)"));
         - Head Lable 등록
            column_headers = ["학번", "이름", "학년"];
            self.tableWidget.setHorizontalHeaderLables(column_headers);
         - row별 값 set
            students = { "no" : [ "2018001", "2018002", "2018003" ],
                             "name" : [ "홍길동", "이순신", "김성철" ],
                             "group" : [ "1학년", "2학년", "3학년" ] };
            column_idx_lookup = { "no" : 0, "name" : 1, "group" : 2 };

            for k, v in students.items():
                col = column_idx_lookup[k];
                print(k, v, col);
                for row, val in enumerate(v):
                   item = QTableWidgetItem(val);
                   if col == 2:
                      item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight);
                      self.tableWidget.setIem(row, col, item);

           self.tableWidget.resizeColumnsToConTents();
           self.tableWidget.resizeRowsToContents();

Posted by 농부지기
,

[ python 용어. 정의. 관련tool. library ]

 

1. Python Windows에 설치하기
    1. 설치파일 url
        - https://www.python.org/downloads/
        - 목록중에서 최신버전 클릭 > [ Windows X8-64 executable installer ] 클릭해서
            > python-3.7.7-amd64.exe 다운로드 (64bit) (2020.04.01기준)

    2. 설치
        - 파일명 : python-3.7.7-amd64.exe (64bit) (2020.04.01기준)
        - 설치 옵션] 
            . install Now (아래 둘다 체크)
                [v] Install launcher for all users (recommended)
                [v] Add Python 3.7 to PATH
        - 사용자 계정 제어]
            . [사용자 계정 제어] alert창이 뜨면 [Yes] 선택
             (환경에 따라서 안뜰 수 있음)
        - 설치 완료

2. Python과 Apache tomcat 연동

    - python은 tomcat과 같은 웹서버 위에서 수행 된다.

    - https://blog.ayukawa.kr/archives/1342
 
3. Python소스를 다른 웹싸이트 (브라우저)에서 실행하기
    - 참고url : https://iamaman.tistory.com/1882
                 http://pythonfiddle.com/
                 https://www.tutorialspoint.com/execute_python_online.php

 

4. python으로 안드로이드 앱 만들기
    - 참고 url : https://minhwan.kim/python-android-app-dev-with-kivy-and-buildozer/

    - windows 환경에서 안드로이드 앱만들기는 아직 어렵다.

    - linux환경에서는 가능한듯

 

5. 파이썬 개발방법 url
    - https://wikidocs.net/8 (잘되어 있음) (점프 투 파이션 책을 기준으로 만들어 졌음)

 

6. 다운로드 및 설치
    - url : https://www.python.org/downloads/
    - version : python-3.8.2.exe (2020.04.28 기준)
    - 설치 - 설치시 [v] Add Python 3.7 to PATH 를 체크
    - [설치] - [end]

 

7. PyQt5
    1. 정의
        - Windows, Linux, UNIX, Android, OS X 및 IOS 플랫폼을 지원한다.
        - 파이썬에서 GUI (Graphical User Interface) 프로그램을 할 때 사용하는 대표적인 패키지.

    2. 설치 참고url
        - 참고url : https://blog.naver.com/o12486vs2/221941480623

    3. 설치 순서
        * dos command에서 실횅
        * 아래 2번만 수행하면 됨. (1번방법은 뭔지 모르겠음)
        1. 가상환경에서 실행 : conda activate venv32
        2. pyqt인스톨 : pip install PyQt5
        3. PyCharm 에서 PyQt5 설치 (win용)
           . 참고url : https://m.blog.naver.com/PostView.nhn?blogId=sisosw&logNo=221419014406&proxyReferer=http:%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D14%26cad%3Drja%26uact%3D8%26ved%3D2ahUKEwjhxNnR25npAhW5L6YKHaD-BY4QFjANegQIARAB%26url%3Dhttp%253A%252F%252Fm.blog.naver.com%252Fsisosw%252F221419014406%26usg%3DAOvVaw10i9nXuwcjnZfDEbTh68Xv


    4. 다양한 예제
        - https://opentutorials.org/module/544
        - http://codetorial.net/pyqt5/index.html

    5. 안드로이드 매크로 예제
        - https://m.blog.naver.com/PostList.nhn?blogId=sisosw&categoryNo=36&logCode=0
          (https://m.blog.naver.com/sisosw/221419779178)
        - https://pacific-ocean.tistory.com/121

8. QT Designer
    1. 참고 url
        - https://m.blog.naver.com/sisosw/221419779178

    2. 정의
       - 위지위그(WYSIWYG : What You See Is What You Get) 방식으로 UI화면을 만들도록 도와주는 프로그램

    3. 설치 방법1(pip로 설치하기)
        - Qt Designer는 하나의 독립적인 프로그램으로 아나콘다 배포판에 포함돼 있으며, 보통 PyQt를 설치할 때 함께 설치된다.
        - 예) C:\ProgramData\Anaconda3\Libaray\bin\designer.exe
        - 설치 : pip3 install pyqt5-tools
        - 설치 위치 : * 웹상에는 여기에 설치 된다 했는데..
                               C:\Python37\Lib\site-packages\pyqt5_tools\designer.exe
                         * 아래 3곳 폴더에 설치되었음 (designer.exe 파일에 3곳 폴더에 존재)
                         - 3개 폴더중 어떤걸 실행해야 되남? 음~~~
                            C:\Users\farmerkyh\AppData\Local\Programs\Python\Python38-32\Scripts\designer.exe
                            C:\Users\farmerkyh\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\QtDesigner\designer.exe
                            C:\Users\farmerkyh\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
                            - 설치 할 때 폴더를 바꾸는 방법을 알아야 할거 같은데...
              - 환경설정 path 추가
                . PATH=C:\Python37\;
                           C:\Python37\Script;
                           C:\Python37\Lib\site-packages\PyQt5;

    4. 설치 방법2(pip로 설치하기)
        - pip install PyQt5Designer
            (난, pip3 install pyqt5-tools 를 수행후 다시 pip install PyQt5Designer 도 수행 했음. 그래도 아무 문제 없는듯.)
            (pip3 install pyqt5-tools 만 수행해도 문제 없음)

    5. 설치 방법3(다운받아 설치)
        - URL : https://pypi.org/project/PyQt5Designer/
                  https://pypi.org/project/PyQt5Designer/#files 에서 PyQt5Designer-5.10.1-cp37-none-win amd64.whl(3.8MB)를 다운받아 설치
                  pip install PyQt5Designer-5.10.1-cp37-none-win amd64.whl
                  또는, 특정 폴더에 있는 경우
                  pip install C:/폴더명/PyQt5Designer-5.10.1-cp37-none-win amd64.whl

        - 버젼 : PyQt5Designer 5.14.1 (2020.05.04 기준)

9. kivy library
    1. kivy 정의
        - kivy는 파이썬 gui programming에 쓰이는 모듈이다.
        - 안드로이드 지원. (안드로이드 app 생성 가능)
        - 이슈 : kivy로 모바일 앱을 만들려는 경우 --> kivy를 apk로 만들어줘야 하는데,
                  이 라이브러리가 윈도우 지원을 안합니다.. 리눅스로만 가능해요.
                  그래서 기껏 열심히 앱 만들었는데 휴대폰에서 사용을 못합니다.

    2. kivy 설치
         - cmd 창에서 아래 명령어 수행 (python.exe 파일이 path 에 등록 되어 있으면 아무곳에서나 실행)
         - python -m pip install --upgrade pip wheel setuptools
         - python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
         - python -m pip install kivy.deps.gstreamer
         * 만약, 3.5를 쓴다면 python -m pip install kivy.deps.angle 이것도 해줘야 됨
         - python -m pip install kivy
         * 만약, 3.0을 쓴다면
            . https://kivy.org/doc/stable/installation/installation-windows.html 여기가서
            - [Nightly wheel installation] 쪽으로 가서 아래 목록중 하나 다운받아
               -> 설치 : cmd에서 : python -m pip install <방금다운한 whle>
                  . Python 3.5, 32bit
                  . Python 3.6, 32bit
                  . Python 3.7, 32bit
                  . Python 3.5, 64bit
                  . Python 3.6, 64bit
                  . Python 3.7, 64bit

    3. android apk 만들기
        - https://blog.naver.com/mmatelee/220720071624

    4. 문법 공부
        - https://wikidocs.net/4309

    5. kivy 시작하기
        - 정의 . Kivy는 크로스 플랫폼 사용자 인터페이스의 신속한 개발을위한 오픈 소스 Python 라이브러리다.
                 . Kivy 응용 프로그램은 동일한 코드베이스를 사용하여 Linux, Windows, OS X, Android 및 iOS 용으로 개발할 수 있다.
       - https://riptutorial.com/ko/kivy
       - 설치방법 및 예제 1개 : https://riptutorial.com/ko/kivy

     6. 안드로이드에서 python 실행하기
        - https://c10106.tistory.com/1674
        - https://www.otwojob.com/member/join/step1 :

10. pyautogui library
    1. 정의
        - 그래픽 관련 class
        - 다운로드 : 참고 : 특별하게 libary를 download할 필요가 없음.
        - 설치방법 : dos command에서 : C:\>pip install pyautogui
        - 업그레이드 : dos command에서 : C:\>python -m pip install --upgrade pip

    2. 설치방법
        - dos command에서 : C:\a\programming>pip install pyautogui
        - 참고 : 특별하게 libary를 download할 필요가 없음.
    3. 설치시 error
        1. 오류 : ImportError: No module named 'PIL'
           해결방법 : image 를 install 하고, 다시 pyautogui 를 설치하면 된다.[ref. 1]
                         pip install image

11. AREPL tool
    - visual studio 에서 소스 코딩과 동시에 오른쪽에 실행된 결과를 확인 가능

 

                 

 

Posted by 농부지기
,