반응형

 

파워포인트 이미지 압축

 

보고서용 파워포인트를 작성하다보니 사진 이미지가 많아서 용량이 커져 버렸다.

메일 보낼 때 대용량 첨부가 되어 버렸다. ㅡ.ㅡ;

그래서 이미지 압축.

 

그림(이미지)을 선택하고 그림 서식 - 그림 압축.

 

그림 압축 창에서 해상도 부분을 낮추면 파일 용량이 줄어든다.

기본 해상도 적용은 문서 옵션에서 적용한 해상도를 의미한다.

 

 

그리고 또 하나의 방법 '파일 - 옵션'

 

 

PowerPoint 옵션 창에서 "고급 - 이미지 크기 및 품질 >> 기본 해상도" 를 낮춰도 된다.

 

 

설정을 바꾸어 보니 아래와 같이 파일 용량이 줄어들었다.

  고화질 (기본)  16.6 MB

  330 ppi         11.4 MB

  220 ppi         7 MB

 

참고) Microsoft 365 버전 기준 

 

 

 

728x90
반응형
반응형

 

 

라즈베리파이를 이용한 python 소켓 프로그램.

Qt5를 이용하여 소켓 프로그램 구현.

 

소스는 아래 링크를 참고하였다.

파이썬 예제 (채팅 클라이언트)

https://oceancoding.blogspot.com/2019/05/blog-post_23.html

 

파이썬 예제 (채팅 클라이언트)

코딩교육을 전문으로 하는 부산 강서구 명지동에 위치한 학원입니다.

oceancoding.blogspot.com

파이썬 예제 (채팅 서버)

https://oceancoding.blogspot.com/2019/05/blog-post_21.html

 

파이썬 예제 (채팅 서버)

코딩교육을 전문으로 하는 부산 강서구 명지동에 위치한 학원입니다.

oceancoding.blogspot.com

 

PyQt5를 사용할 것이므로 PyQt5를 설치한다.

$ sudo apt-get install python3-pyqt5

 

소켓 라이브러리를 사용하므로 socket 을 설치.

$ sudo apt-get install socket

 

 

Server 프로그램, Client 프로그램을 실행해서 아래와 같이 테스트.

Local 에서 테스트 하므로 IP는 127.0.0.1 을 사용했다.

 

Client에서 Server로 메시지를 보내고 보낸 메시지가 Server에서 echo 되어 client로 되돌아 온다.

 

PC에서 사용하는 코드가 라즈베리파이에서도 잘 동작한다.

참고로 라즈베리파이3 에서 테스트 하였다.

 

 

 

728x90
반응형
반응형

 

 

Ethernet 통신 프로그램 테스트를 위해서 우선 ping 부터 시도하게 된다.

그런데 ping 이 안 될 때가 있다.

ipconfig -all 

로 ip 확인까지 다 했는데...

그것도 한쪽 PC는 되는데 다른 쪽 PC가 안 될 경우가 있다.

 

Windows 10 에서는 ping 설정을 해주어야 한다.

아래 링크를 참고해서 설정을 하니 정상적으로 ping 양쪽 모두 잘 된다.

https://syuda.tistory.com/80

 

[윈도우10] ping 안될때 - ICMP 허용 설정하기

안녕하세요. 슈다 입니다. 윈도우10 ICMP 설정 방법을 알아보도록 하겠습니다. 같은 네트워크에 있는 단말PC 간 ping 명령어를 통해 네트워크 온라인 여부 등을 확인할 수 있습니다. 윈도우10에서는

syuda.tistory.com

 

Ping을 테스트 했을 때 수신이 안 되는 PC에서 ping 설정을 한다. (즉, Ping을 받는 쪽 PC)

 

1. 윈도우 + R (실행) >> control >> 제어판

 

 

2. Windows Defender 방화벽 >> 고급설정

 

3. 인바운드 규칙 >> "파일 프린터 공유 (에코 요청 - ICMPv4-In) / 공용" 선택

  우클릭 >> 규칙 사용 >> 녹색 체크 표시 .

 

 

이렇게 하면 ping 이 정상적으로 동작됨을 확인할 수 있다.

 

 

 

 

 

728x90
반응형
반응형

 

 

 

QComboBox의 drop-down list 아이템 글가 가운데 정렬

 

선택된 글자만 가운데 정렬하니 이상해서 drop-down list의 글자도 가운데 정렬해 보았다.

 

 

그림과 같이 첫 번째 항목만 가운데 정렬되어 있다.

 

self.comboBoxSerialBPS.setItemData(0, QtCore.Qt.AlignCenter, QtCore.Qt.TextAlignmentRole)   
#First item center aligned

 

위 코드와 같이 하면 drop-down list의 글자가 가운데 정렬된다.

index 부분만 바꾸면 나머지 항목도 변경할 수 있다.

 

 

 

728x90
반응형
반응형

 

 

QComboBox 텍스트를 가운데 정렬하는 방법

 

ComboBox는 기본적으로 문자가 왼쪽 정렬되게 되어 있다.

Qt Designer 에서도 이것의 정렬하는 속성이 없다.

 

 

https://www.geeksforgeeks.org/pyqt5-how-to-make-text-center-align-for-non-editable-combobox/?ref=gcse 

 

PyQt5 - How to make text center align for non-editable ComboBox - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

위 링크 사이트의 내용을 참고로 하여 작성하였다.

 

# making it editable
self.comboBoxSerialBPS.setEditable(True)

SerialBPS_list = [ "1200", "2400", "4800", "9600", "19200", "38400", "57600", "115200" ]
self.comboBoxSerialBPS.addItems(SerialBPS_list)
self.comboBoxSerialBPS.setCurrentIndex(7)

# getting the line edit of combo box
line_edit = self.comboBoxSerialBPS.lineEdit()

# setting line edit alignment to the center
line_edit.setAlignment(QtCore.Qt.AlignCenter)

font = QtGui.QFont('Arial', 12)
font.setBold(True)
line_edit.setFont(font)

# setting line edit to read only
line_edit.setReadOnly(True)

 

주의할 것은 ComboBox가 Editable 이어야 한다는 것이다.

 

https://doc.qt.io/qt-5/qcombobox.html#lineEdit

 

QComboBox Class | Qt Widgets 5.15.8

QComboBox Class The QComboBox widget is a combined button and popup list. More... Public Types enum InsertPolicy { NoInsert, InsertAtTop, InsertAtCurrent, InsertAtBottom, InsertAfterCurrent, …, InsertAlphabetically } enum SizeAdjustPolicy { AdjustToConte

doc.qt.io

 

이것을 모르고 designer에서 editable을 해제한 상태에서 했더니 setAlignment 에서 에러가 나왔었다.

이거 발견하는데 한 두시간... ㅠ.ㅠ

 

 

 

 

728x90
반응형
반응형

 

PC와 외부 장치와 Ethernet 통신을 하기 위한 테스트 용으로 라즈베리파이를 구성해 보았다.

다른 방법도 있지만 라즈베리파이를 쓸 일이 있어서~ ^^

 

라즈베리파이는 기존에 가지고 있던 3 버전.

새로운 OS를 다시 올리고 Qt 설치 시도.

 

아래 링크 사이트를 참고로 하였다.

https://remnant24c.tistory.com/328

 

라즈베리 파이(Raspberry Pi) 4 모델 B - Qt5 설치 및 Qt Creator 컴파일 환경 설정하기

안녕하세요.  라즈베리파이 4에 Qt설치를 쉽게 할 것이라 생각했는데, 바로 되지 않아서 해결한 방법 남겨봅니다. 인터넷에 나와 있는 설치 명령어로 바로 설치되면 좋겠지만, 안될 경우 참조하

remnant24c.tistory.com

 

아래의 명령을 하나씩 실행.

$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install build-essential
$ sudo apt-get install cmake
$ sudo apt install qtcreator
$ sudo apt install qt5-default

마지막의 qt5-default 는 설치되지 않았다.

 

qtcreator 설치 중.

qt-default 는 아래와 같이 설치되지 않았다.

 

 

그러나 여기까지 설치한 상태에서도 시작 메뉴에 Qt가 설치되어 있다.

그래서 Qt Creator 실행.

 

 

정상적으로 실행된다. ^^

Python 샘플 프로그램도 실행하니 동작하였다. 

 

 

참고로 처음에 윈도우에 Qt를 설치하는 것 처럼 리눅스용 Qt5를 다운로드 하고 실행하였더니 설치가 안 되었다.

라즈베리파이용 Qt가 별도로 있었다.

아래 내용은 그냥 참고.

https://wiki.qt.io/Download

 

Download - Qt Wiki

This article is nominated for deletion. Reason: Obsolete information. All links broken.Please raise your support/opposition to this nomination in the article's discussion page. Qt on Raspberry Pi — Downloads Kept for historical purposes. The downloads ar

wiki.qt.io

 

728x90
반응형
반응형

기능 구현에만 급급하여 코드만 짜다보니 정리가 되지 않아 정리겸 블로깅~

오늘 구현한 폴더에서 특정 확장자만 리스트에 표시하는 기능.

 

 

Path 버튼을 눌러 폴더선택 다이얼로그를 열고,

폴더를 선택하면 그 폴더 내에서 .rcp 라는 파일만 리스트 위젯에 등록한다.

 

아래 코드는 현재 위치의 \Recipe 내에 있는 파일들의 리스트를 위젯에 등록하는 코드이다.

import os
files = os.listdir('.\Recipe')
for file in files:
	self.listWidgetModel.addItem(file)

실행해 보니 파일 뿐만 아니라 폴더까지도 등록되었다. ^^

 

여기에 추가적인 코드를 더하여 기능을 완성한다.

def pushButtonPath_clicked(self) :
	folder = QFileDialog.getExistingDirectory(self, "Select Directory")
	if folder != '' :
		self.lineEditPath.setText(folder)
		self.listWidgetModel.clear()
		files = os.listdir(folder)
		fileExt = ".rcp"
		for file in files :
			if file.endswith(fileExt) :
				self.listWidgetModel.addItem(file)
	else :
		QMessageBox.about(self, "Error", "Not selected!")

 

폴더를 선택하지 않고 취소를 하면 메세지를 띄운다.

폴더를 선택했으면 에디트 박스에 폴더 경로를 표시하고,

현재 리스트의 내용을 지우고,

'.rcp' 인 파일만 리스트에 추가한다.

 

PyQt5로 다시 시작 (1월 20일) 한지 3주째... 

조금씩 되어가지만 아직 한참 멀었다.

기초를 다지지 않고 막 나가는 코드... ㅡ.ㅡ;

 

 

 

728x90
반응형
반응형

wxPython 설치

 

Python 으로 UI를 구현하고자 검색하다가 wxPython 이 평가가 좋아 보여서 시도.

웹에 나와 있는 소스코드를 따라하고 실행하니 역시 동작하지 않는다.  wxPyton 을 설치해야 하는군...

 

https://wxpython.org/pages/downloads/

 

wxPython Downloads

Current Release Starting with wxPython 4.0 (the first Phoenix release) the wxPython source archive and, for supported platforms, wxPython binary wheels are available from the Python Package Index (PyP

wxpython.org

 

여기에 나와있는데로 실행해 보았다.

 

 

에러만 가득... ㅡ.ㅡ;

 

 

pip upgrade도 해서 시도해 보았지만 여전히 동일한 에러... ㅡ.ㅡ;

 

아래 링크에서 파일을 다운로드 받아서 설치 시도해 보았다.

https://wxpython.org/Phoenix/snapshot-builds/

 

Index of /Phoenix/snapshot-builds

 

wxpython.org

 

블로그 검색하여 win32 를 사용해야 한다는 글을 보고 win32를 다운로드 하여 설치 시도.

여전히 에러가 발생한다. ㅠ.ㅠ

 

설치된 파이썬 버전 3.10 과 wxPython 버전 3.9 (cp39) 의 차이인 것 같다. 

그런데 3.10 은 win32가 없네... ㅡ.ㅡ;

win_amd64는 안 될까?

 

설치 파일을 보니 python 3.10 amd64 를 설치한 것이였다. 
그래서 win_amd64로 설치.

 

 

설치가 되었다!!! ㅋㅋㅋ

 

설치된 것 확인.

 

 

설치 완료. 

이제 코딩을 해 보자~~~

 

 

 

 

 

728x90
반응형

+ Recent posts