QT 프로그래밍 발표: 김래영.

Slides:



Advertisements
Similar presentations
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
Advertisements

Embedded System Lab. II GUI Programming in Embedded Linux 경희대학교 컴퓨터공학과 조 진 성.
Qt/Embedded & Qtopia. 목 차목 차 1.Embedded Linux GUI Toolkit 2.Qt/Embedded 3.Qtopia 4.Virtual Frame Buffer 5. 개발환경 및 과정 6.Qt/E Application Hello World program.
Qt/Embedded & Qtopia Qt/Embedded & Qtopia 안양대학교 전기전자공학과 서 삼 준.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
QT/Embedded와 웹 서버 Qt/Embedded 개요 Qt/Embedded 개발 환경 구축
Efl을 이용한 타이젠 네이티브 웨어러블 앱 만들기
1월 19일 주일오전예배 핸드폰 전원을 꺼주시기 바랍니다.
GTK 프로그래밍 ( 1 ) SNSLAB 발표 : 문동규.
Image & Video processing
5과 하나님의 말씀인 성경.
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
2017 은광교회 청년디모데 여름 수련회 ( ).
Cross Compiler를이용한 커널 컴파일 및 포팅
Cross Compiler를이용한 커널 컴파일 및 포팅 1
개발 환경 개발 환경 개요 PXA270과 타겟 시스템 툴체인 환경 구축 JTAG 유틸리티 미니컴 Make 유틸리티
제16장 QT/Embedded.
제4장 Cross Compiler 설치.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Ubiquitous Computing Practice - Part I (Installation) -
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Lex와 Yacc을 이용한 Calculator 구현
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
PROJECT DIGITAL FRAME 홍민우 이욱중 이승연.
Root Filesystem Porting
C / C++ Programming in multi platform
Root Filesystem Porting
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
22강. 파일 업로드 - 파일 업로드 라이브러리 설치 - 파일 업로드 프로그래밍 Lecturer Kim Myoung-Ho
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Lex와 Yacc을 이용한 Calculator 구현
Cross Compiler 설치.
Cross Compiler를이용한 커널 컴파일 및 포팅
AVR – ATmega103(ATMEL) Compilers & ISP
Computer Graphics OpenGL 설치 및 설정
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Device Driver 임베디드 시스템 I.
개발 환경 세팅.
Smart Workplace 개발자 가이드
제목소개 1. 안드로이드소개 2. 패킷캡쳐를 위한 환경 소개 3. ndk 소개 4. lipcap 5. 6.도식화 그림
ADC 디바이스 사용법.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
제9장 C 프로그래밍 환경 TOPCIT (Test of Practical Competency in IT)
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
05. General Linear List – Homework
3. 모듈 (5장. 모듈).
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
argc, argv 의 사용방법 #include <stdio.h>
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Kernel Porting Lecture #7.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
Git을 이용한 버전 관리 - Branch 실습
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
Docker Study 6~7.
Presentation transcript:

QT 프로그래밍 발표: 김래영

소개 사용자 정의 슬롯 QT 디자이너 Qt/Embedded 포팅

사용자 시그널 정의 Qapplication::quit() 사용자 정의 슬롯으로 구현 Exit.h file #include <qobject.h> class Exit : public QObject { Q_OBJECT public: Exit(); public slots: void myQuit(); };

사용자 시그널 정의 #include "Exit.h" Exit::Exit() { } void Exit::myQuit() { exit(0); } int main(int argc, char **argv) { QApplication a(argc, argv); QPushButton quit( “Quit”, 0 ); Exit *exit = new Exit; QObject::connect (&quit, SIGNAL(clicked()), exit,SLOT(myQuit()) ); a.setMainWidget( &quit ); quit.show(); return a.exec(); } “exit.cpp”

사용자 시그널 정의 컴파일후 생성되는 파일( tmake사용) 커스텀 시그널,슬롯 Q_OBJECT 매크로 컴파일 방법 moc_exit.cpp moc_exit.o 커스텀 시그널,슬롯 moc 이용 C++이 알수 있는코드로 변환 Q_OBJECT 매크로 컴파일 방법 Q_OBJECT 매크로는 헤더 파일에 작성 구현부분은 소스(.cpp) 파일에 작성 progen , tmake 사용

QT 디자이너 디자이너는 *.ui 파일을 생성 ui 파일은 HTML 형식 <!DOCTYPE UI> <UI> <class>MyForm</class> <widget> <class>Qwidget</class>

QT 디자이너 *.ui 파일 컴파일 방법 uic 를 사용하여 *.h *.cpp 파일 자동 생성 Ex) myform.ui 가 보관된 디렉토리에 myform.pro 파일 생성 #qmake –project main.cpp 생성 uic 를 사용하여 *.h *.cpp 파일 자동 생성 #uic –subdecl MyFormImpl myform.h myform.ui >myfprmimpl.h #uic –subimpl MyFormImpl myform.h myform.uii > mufprmimpl.cpp tmake 로 Makefile 생성

QT Embedded 포팅 Embedded 포팅 순서 커널 포팅 Qt/Embedded 포팅 Application 포팅

커널 포팅 크로스 컴파일러 커널 컴파일 루트 이미지 설치 < 커널 포팅 흐름 >

Qt/Embedded 포팅(1) Qt/Embedded 라이브러리 ARM 용으로 컴파일 Cross 컴파일러 사용 Download ftp://ftp.netwinder.ort/users/c/chagas ftp://ftp.netwinder.ort/users/r/rtvanals

QT Embedded 포팅(2) 환경설정 새로운 경로에 Qt/Embedded 설치 Makefile 수정 ~/arm/qt-2.3.2 디렉토리( QTDIR ) Makefile 수정 sub-tutorial sub-example 삭제 ( Line 11 ) 라이브러리만 컴파일 $QTDIR/configs 수정

QT Embedded 포팅(3) Config 파일수정 linux-arm-g++-shared SYSCONF_CXXFLAGS_QT = -I/$(QTDIR)/incude –I/usr/local/arm-linux/include SYSCONF_LINK_LIB_SHARED = … -L/usr/local/arm-linux/lib … ./configure –xplatform linux-arm-g++ libqte.so.2.3.2 생성 확인

Application 포팅 tmake 설정 export TMAKEPATH= export QTDIR=~/arm/qt-2.3.2 ~/tmake-1.8/lib/qws/linux-arm-g++ ( 컴파일 후 파일 전송 실행 )

Application 포팅 #include "entry.h“ #include <qapplication.h> Entry::Entry(){ layout = new QGridLayout(this); layout->setMargin(4); layout->setSpacing(4); addEntry(0,0,"name"); addEntry(1,0,"addr"); addEntry(2,0,"Tel"); addEntry(2,2,"Email"); QPushButton *button=new QPushButton("reg",this); button->setFixedSize(button->sizeHint()); layout->addMultiCellWidget(button,3,3,0,3); } < entry.cpp >

Application 포팅 void Entry::addEntry( int row, int col, const QString& tag) { QLabel* label=new QLabel(tag,this); layout->addWidget(label,row,col); QLineEdit *lineedit = new QLineEdit(this); if (row==1) layout->addMultiCellWidget(lineedit,1,1,1,3); else layout->addWidget(lineedit,row,col+1); label->setBuddy(lineedit); } <entry.cpp>

Application 포팅 progen entry.cpp > entry.pro tmake entry.pro >Makefile (tmake 사용전에 환경변수를 ARM 용으로 설정) make 바이너리 확인 arm-linux-strip Target board로 전송

실행화면 SHARP SL-5500 에서 실행한 화면