Qt 강좌11 라벨을 이용하여 이미지(그림파일) 출력하기 새로운 프로젝트를 생성하지 않고 Qt 강좌10 로그인 애플리케이션을 쭉 이용합니다. 먼저 라벨을 추가합니다. 라벨 크기를 크게 만듭니다. 라벨의 텍스트를 삭제합니다. 라벨의 objectName을 label_pic를 변경합니다. 그림파일을 추가하기 위해 mainwindow.cpp파을의 헤더파일을 추가한다. QPixmap pix(); 추가 pix()안에 그림파일 위치 추가 label_pic에 그림파일을 넣습니다. ui->label_pic->setPixmap(pix); 컴파일해서 그림파일이 라벨에서 출력되는지 확인한다. 그런데 문제는 그림파일의 일부만 나왔습니다. 그래서 리사이즈를 통해서 그림이 제대로 나오게 하겠습니다. 크기를 가로 100, 세로 10..
Qt 강좌10 로그인 애플리케이션 만들기 폼에 그룹박스 만든다. 그룹 박스 타이틀을 SingIn으로 변경한다. 라벨 2개와 라인에디트박스 2개를 만든다. 라벨을 ID와 Password로 변경한다. 호리존탈레이아웃을 이용해 라벨과 라인에디트박스를 묶는다. 그 안에 푸쉬버튼을 추가한다. 푸쉬버튼의 텍스트를 로그인으로 변경한다. 첫번째 라인에디트 ObjectName을 lineEdit_ID로 변경한다. 두번째 라인에디트 objectName을 lineEdit_password로 변경한다. Login푸쉬버튼의 objectName을 pushButton_login으로 변경한다. login푸쉬버튼을 우클릭해서 Go to slot선택한다. 클릭을 선택한다. 다음과 같이 코딩한다. 메시지박스 헤더파일을 추가한다. 로그인푸쉬버..
Qt 강좌9 새창 만들기 새창 띄우기 예제 만들기 Add New Qt >> Qt Designer Form Clas Dialog without Buttons Class name: SecDialog Finish secdialog.h, secdialog.cpp, secdialog.ui 파일이 생성됨. mainwindow.ui에 pushbutton을 추가합니다. 푸쉬버튼 텍스트를 "Open Second Dialog"로 바꾸던지, 원하시는대로 바꿔요. 푸쉬버튼을 마우스 우클릭하고 Go to slot 를 선택합니다. Select signal에서 clicked()를 선택합니다. 그리고 위와 같이 코딩합니다. #include "mainwindow.h"#include "ui_mainwindow.h"#include "se..
Qt 강좌8 Spacers, Splitter, Buddy and Tabs (스페이서, 스플리터, 버디, 탭) New Project Qt Widgets Application Name: SplitterDemo Next Next Finish 프로젝트 생성 완료 폼에 라벨과 라인에디터 추가한다. 라벨과 라인에디터를 같이 선택한다. 폼의 위에 있는 Lay Out Horizontally 버튼을 누른다. 위의 화면처럼 라벨과 라인에디터가 같이 묶인다. 푸쉬버튼 2개를 추가한다. 푸쉬버튼 텍스트를 Ok, Quit로 변경한다. Ok, Quit 푸쉬버튼도 함께 묶는다. 마우스로 모두 드래그한다. Lay out Vertically 버튼을 누른다. 위의 하면같이 정돈된다. Horizontal Spacer를 추가한다. Hori..
Qt 강좌7 레이아웃 Layout New Project Qt Widgets Application Name: LayoutsDemo 레이아웃 프로젝트 생성 폼에 푸쉬버튼을 추가하고 우클릭하여 Lay Out Horizontally 를 선택한다. 버튼이 수평으로 길어진다. 푸쉬버튼을 추가하면 수평으로 놓인다. 푸쉬버튼을 또 추가해도 수평으로 놓인다. 3개의 푸쉬버튼을 모두 선택한다. 오른쪽 하단에 프로퍼티창에서 Vertical Policy 에서 Preferred 를 선택한다. 버튼의 폼에 맞춰 커진다. 컴파일하고 실행한다. 창을 크게 늘리면 푸쉬버튼도 같은 비율로 커진다. 다시 되돌아가서(Ctrl+Z) 푸쉬버튼을 삽입한다. 그리고 우클릭하여 Lay Out Vertically를 선택한다. 그리고 푸쉬버튼을 추가하..
Qt 강좌6 QMessageBox 메시지 박스 만들기 New Project Qt Widgets Application Name: QMessageBoxExample 프로젝트 생성 완료 ui에 푸쉬버튼을 만든다. 푸쉬버튼 텍스트를 "Show Message"로 바꾼다. 푸쉬버튼를 우클릭하고 Go to slot를 선택합니다. 그리고 clicked()를 선택합니다. 그럼 위와 같이 on_pushButton_clicked() 코드가 생성됩니다. 다음과 같이 코딩합니다. #include 그리고 다음과 같이 코딩해서 메시지 박스를 만들어요. #include "mainwindow.h" #include "ui_mainwindow.h" #include MainWindow::MainWindow(QWidget *parent) :..
Qt 강좌5 시그널과 슬롯(Signals And Slots) New Project 클릭. Qt Widgets Application 클릭. Name : SignalsAndSlots Next 클릭. Next 클릭. Finish 클릭. 위와 같이 생성됩니다. UI 화면을 선택합니다. 프로그래스바(Progress Bar)를 ui화면에 드래그합니다. 호리존탈 슬라이더(Horizontal Slider)를 선택해서 ui화면에 드래그합니다. 프로그레스바와 슬라이더를 키보드에서 Ctrl 버튼을 눌러서 모두 선택합니다. 그리고 UI 위의 작은 버튼 메뉴중에서 Layout Vertically를 클릭해주면 프로그레스바와 호리존탈 슬라이더바가 빨간색 선으로 한꺼번에 묶이게 됩니다. 마우스로 드래그해서 보기 좋게 키우세요. ui..
Qt 강좌4 GUI 위젯 애플리케이션(widget Application) 1. 다음과 같이 프로젝트를 생성합니다. 2. Qt Widgets Application을 선택합니다 . 3. Name 에 FirstGUI를 입력합니다. 4. 다음으로 넘어가요. 5. 다음으로 넘어가요. 6. 다음으로 넘어가요. 7. 기본적인 프로젝트가 생성되었습니다. 8. 위와 같은 프로젝트 파일들이 생성되었습니다. 9. 위의 화면은 main.cpp 파일 입니다. 10. 위의 화면은 mainwindow.h 파일입니다. 11. 위의 화면은 mainwindow.ui 화면입니다. 12. 왼쪽 Buttons 메뉴에서 Push Button을 마우스로 폼화면으로 드래그 앤 드롭하면 PushButton 이 생깁니다. 오른쪽 노란칸 프로퍼트(Pr..
Qt3 강좌 3. 첫번째 Qt 애플리케이션 Hello World 만들기 Qt 프로그램을 실행하고 New File or Project 를 선택합니다. 왼쪽 프로젝트 메뉴에서 Other Project를 선택하고 Empty qmake Project를 선택합니다. 프로젝트 네임에 HelloWorld를 입력하고 Continue를 클릭하고 다음페이지로 이동합니다. Continue를 클릭하고 다음페이지로 이동합니다. Done를 클릭합니다. "HelloWorld.pro"라는 파일이 1개 생성되어 있습니다. 좌측 상단의 HelloWorld를 우클릭하고 Add New를 선택합니다. New File에서 C++ Source File을 선택합니다. C++ Source File Name에 main.cpp를 입력하고 다음으로 넘어..
Qt 설치 방법 (오픈소스버전) 1. Qt 홈페이지 접속합니다. http://www.qt.io 우측 상단에 다운로드를 클릭합니다. 상업용 버전과 오픈소스 버전이 있습니다. 잘 읽어보시고 다운 받으시면 됩니다. 저는 맥북과 라즈베리파이를 사용합니다. 맥북에 설치된 Qt를 보겠습니다. 1. 뉴 프로젝트 클릭합니다. 2. Choose를 클릭하고 넘어가요. 3. Continue를 클릭하고 넘어가요. 4. Continue를 클릭하고 넘어가요. 5. Continue를 클릭하고 넘어가요. 6. Done 를 클릭하고 넘어가요. 7. 첫 화면이 나와요. 8. 좌측 하단 녹색 세모 컴파일 버튼을 누르면 컴파일 되고, 화면 중앙에 창이 하나 만들어 집니다. 첫번째 프로그램을 만들었습니다.
Qt 강좌.1 소개는 나중에 보고 본 강좌 바로 가기 2018/09/12 - [Qt] - Qt 강좌2 설치 방법 부터 첫번째 프로그램 만들기 (오픈소스버전)2018/09/12 - [Qt] - Qt3 강좌3. 첫번째 Qt 애플리케이션 Hello World (Empty qmake Project)2018/09/12 - [Qt] - Qt 강좌4 GUI 위젯 애플리케이션(widget Application)2018/09/12 - [Qt] - Qt 강좌5 시그널과 슬롯(Signals And Slots)2018/09/12 - [Qt] - Qt 강좌6 QMessageBox 메시지 박스 만들기2018/09/12 - [Qt] - Qt 강좌7 레이아웃 Layout2018/09/13 - [Qt] - Qt 강좌8 Spacers,..
라즈베리파이 LED를 이용하여 PWM 캔들랜턴만들기 스텝 1 LED를 고려하여 저항 선택하기 저항은 LED에 흐르는 전류를 제한할 수 있다. 알맞은 저항을 선택하는 공식은 다음과 같다. R = (3.3V – LED 전압) / LED 전류 예를 들어 노란색 LED 전압은 1.8-2.2V 이고 전류는 20mA다. (3.3-2.0)/0.02 = 65옴, 여기서 저항값은 65~130옴이 이상적인 값이다. 하지만 더 낮은 저항값을 사용하면 LED는 더 밝아질 수 있다. 스텝 2 브레드보드 GPIO 핀 회로 구성하기 GPIO18 - 저항 - LED(+) - LED(-) - 접지(GND) 스텝 3 코딩하기 (candle.py) import RPi.GPIO as GPIO import time import random ..
라즈베리파이 슬로우 모션 카메라 슬로우 모션 비디오는 영화산업에서 수십년동안 사용되었습니다. 폭발로부터 점프하는 장면이나 영화 매트릭스에서 총알이 날아가는 장면이 유명했습니다. 당신의 라즈베리파이와 카메라 모듈로 슬로오 모션 비디오를 쉽게 만들수 있습니다. 라즈베리파이 파이썬의 짧은 코딩을 통해 30초 동안 저장되고, MP4로 컨버트 할 것입니다. 스텝 1 카메라 모듈 연결 첫번째로 카메라 모듈을 라즈베리파이에 연결한다. 라즈베리파이 전원을 오프 상태에서 연결한다. 스텝 2 카메라 모듈 설정 터미널에서 sudo raspi-config => Enable Camera 로 설정하고 sudo reboot 스텝 3 비디오 컨버터 설치 라즈베리파이 비디오 파일은 h.264이다. 이 파일은 대부분의 장치에서 쉽게 재..
라즈베리파이에서 c언어를 사용하여 LED 점멸하기 wiringPi 설치하기 sudo apt-get install git-core sudo git clone git://git.drogon.net/wiringPi cd ~/wiringPi sudo ./build 설치확인하기 gpio -v pi@raspberrypi:~/code $ gpio -v gpio version: 2.46 Copyright (c) 2012-2018 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty Raspberry Pi Details: Type: Pi 3, Revision: 02, Memory: 1024MB,..
라즈베리파이 파이카메라(picamera)이 패키지는 Python 2.7 (또는 그 이상) 또는 Python 3.2 (또는 그 이상)의 Raspberry Pi 카메라 모듈에 대한 순수한 Python 인터페이스를 제공합니다.1. 설치1.1. Raspbian 설치Raspbian 배포판을 사용한다면 기본적으로 picamera가 설치되어있을 것입니다. 파이썬을 시작하고 picamera를 임포트하려고하면 간단히 알 수 있습니다 :$ python -c "import picamera" $ python3 -c "import picamera"오류가 발생하지 않으면 이미 picamera가 설치되어 있습니다! 시작하기를 계속하십시오. picamera가 설치되어 있지 않은 경우 다음과 같은 메시지가 표시됩니다.$ python ..
3.1. 라즈베리파이 LEDBoardLEDBoard 객체의 LED를 하나씩 반복 할 수 있습니다.from gpiozero import LEDBoard from time import sleep leds = LEDBoard(5, 6, 13, 19, 26) for led in leds: led.on() sleep(1) led.off() LEDBoard는 또한 색인 생성을 지원합니다. 즉, leds [i]를 사용하여 개별 LED 객체에 액세스 할 수 있습니다. 여기서 i는 0부터 LED 수를 포함하지 않는 정수까지의 정수입니다.from gpiozero import LEDBoard from time import sleep leds = LEDBoard(5,6,13,19,26) leds[0].on() # first ..
MinnowBoard Max Pin Mappings (민노우보드 맥스 핀 매핑)Overview출처: https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsmbmMinnowBoard Max의 하드웨어 인터페이스는 보드의 26 핀 헤더 JP1을 통해 노출됩니다. 기능에는 다음이 포함됩니다.10x - GPIO pins2x - Serial UARTs1x - SPI bus1x - I2C bus1x - 5V power pin1x - 3.3V power pin2x - Ground pinsMinnowBoard Max는 모든 IO 핀에서 3.3V 로직 레벨을 사용합니다. 또한 모든 핀은 전원 및 접지 핀을 ..
드래곤 보드 핀 매핑(Dragonboard Pin Mappings)출처: https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsdb드래곤 보드의 하드웨어 인터페이스는 보드의 40 핀 헤더를 통해 노출됩니다. 기능에는 다음이 포함됩니다.11x - GPIO pins2x - Serial UARTs1x - SPI bus2x - I2C bus1x - 5V power pin1x - 1.8V power pin4x - Ground pins 드래곤 보드는 모든 IO 핀에서 1.8V 로직 레벨을 사용합니다.GPIO 핀이 장치에서 사용할 수있는 GPIO를 살펴 보겠습니다. GPIO 핀 테이블다음 GPIO 핀은 ..
Raspberry Pi 2 & 3 Pin Mappings 출처: https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpiRaspberry Pi 2 및 Raspberry Pi 3의 하드웨어 인터페이스는 보드의 40 핀 헤더 J8을 통해 노출됩니다. 기능에는 다음이 포함됩니다.24x - GPIO pins1x - Serial UARTs (RPi3 only includes mini UART)2x - SPI bus1x - I2C bus2x - 5V power pins2x - 3.3V power pins8x - Ground pins GPIO 핀 이 장치에서 사용할 수있는 GPIO를 살펴 보겠습니다...