일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Row
- ListView.builder
- AppBar
- Networking
- Snackbar
- FutureBuilder
- sqlite
- Hello World
- Flutter Example
- CrossAxisAlignment
- node.js
- 반석천
- Flutter 예제
- Image.network
- Scaffold
- InkWell
- ListTile
- navigator
- HTTP
- Column Widget
- Row Widget
- listview
- Flutter 강좌
- Flutter Tutorial
- Load Image
- MainAxisAlignment
- flutter
- Flutter 앱 배포
- WillPopScope
- Cached Image
- Today
- Total
목록Development/Qt (8)
꿈꾸는 시스템 디자이너
JSON은 데이터를 쉽게 구조화하여 read/write하는 툴이다. 구조화 된 데이터를 로컬에 파일로 저장하거나 장치간의 통신 메시지 사용할 때 유용하다. 실제 구조를 보면 다음과 같이 변수명과 데이터 형태로 쌍을 이루고 있다. 이 데이터를 읽고/갱신하는 툴은 다음과 같다. QT에서도 JSON 데이터를 객체화 하기 위한 QJsonObject 클래스와 문서화 하기 위한 QJsonDocument 클래스 등을 제공하고 있다. 다음은 QT에서 JSON을 이용하는 간단한 예제이다. #ifndef DEVICEINFO_H#define DEVICEINFO_H #include #include #include #include #include class DeviceInfo{public: DeviceInfo(); QJsonO..
UI widget이 많은 QT GUI 프로그래밍을 할 때 골치 아픈 것 중에 하나가 UI widget의 네이밍이다. - pbDevice1 - pbDevice2 - pbDevice3 - pbDevice4 - pbDevice5 위와 같은 식으로 QPushButton의 변수명을 할당했을 때 실제 로직 코드내에서 이를 for 문을 이용해서 제어하기가 귀찮아 진다. 이럴때 변수명을 for문의 index로 증가시키면서 사용하는 방법은 다음과 같다. QString objName = ""; QLineEdit* obj = NULL; for(int i = 0; i setText(objName); } } GUI 상에 QLineEdit 객체를 6개 선언하고 그 이름은 leDevName으로 시작해서 1번부터 6번까지 할당했다...
QT 어플리케이션에서 웹페이지를 이용하기 위해서는 웹뷰(QWebView)를 이용한다. 아래의 그림은 하나의 윈도우에 두개의 웹뷰를 통해 구글맵을 표시하고 사용자가 맵을 클릭하면 맵 해당 위치의 위도,경도를 표시하는 예제이다. 또한 그 위도와 경도의 값을 QT의 UI에도 표시해 준다. 다시 말하면, 구글맵을 가지는 HTML파일의 자바스크립트가 QT를 호출하는 예제이다. 위 예제에서 두 웹뷰의 차이는 첫 번째 웹뷰는 QT 디바이너를 통해 메인윈도우 폼에 배치한 것이고, 두 번째 웹뷰는 코드상에서 직접 QWebView를 생성하여 사용한 것이다. QT와 HTML의 자바스크립트간의 통신을 위해서는 HTML파일에 오브젝트를 주입하고, HTML의 자바스크립트가 이 오브젝트를 통해 QT의 슬롯을 호출하는 방식을 이용해..
QQuickWidget은 QT에서 제공하는 QWidget 중 하나로 QQuickWidget을 Qt Quick를 담아 표현하는 QWidget이라 할 수 있다. Qt 문서에 따르면, Qt Quick란 QML 어플리케이션을 작성하는 표준 라이브러리로, 쉽게 풀이하면 QML 문서로 작성된 컴포넌트가 Qt Quick라 할 수 있겠다. Qt Quick를 실행시키고 화면에 출력하기 위한 방법은 다양한데, 그 중 하나가 QQuickWidget에 담아서 출력하는 것이다. 위의 그림과 같이 하나의 QWidget에 세개의 버튼을 배치하고 버튼을 클릭할 때마다 해당 QQuickWidget을 출력한다. 이때 각 QQuickWidget 마다 고유의 QML 파일을 가진다. import QtQuick 2.0 Rectangle { w..
QML 파일들간에 fuction 호출이 필요한 경우가 있다. 아래의 그림의 경우 Panret(main.qml)에서 ChildA와 ChildB qml파일을 이용하고 있으며, 각 파일들간에 시그널을 이용해서 데이터를 주고 받는 것을 확인해 본다. import QtQuick 2.3import QtQuick.Controls 1.2 ApplicationWindow { id: applicationWindow1 visible: true width: 400 height: 400 title: qsTr("Hello World") /*시그널 정의부 시그널이 정의된 영역의 id가 ApplicationWindow1이므로 applicationWindow1.sigSay("text")로 시그널을 발생할 수 있음*/ signal si..
Qt4에서는 QPushButton등의 GUI 컴포넌트들을 사용하기 위해 QtGui를 include하여 사용한 것 같다.하지만 Qt5에서 QtGui를 include 하더라도 에러는 나지 않지만 GUI 컴포넌트들을 사용하고자 하면 선언되지 않았다는 에러가 발생한다. 'QMessageBox' has not been declared 이는 Qt5로 넘어가면서 QtGui를 사용하지 않고 QtWidgets으로 include하면 해결된다.
Qt는 다양한 OS상에서 동작이 가능한 특징이 있다. 그리고 당연히 다양한 OS상에서 개발 가능하다. 그 중 윈도우상에서 Qt를 설치하는 방법이 제일 간단하다. 방법은 다음과 같다. 1) Qt 다운로드 우선 Qt를 다운로드 하기 위해 해당 사이트(http://www.qtsoftware.com/downloads)를 방문한다. 사용버전(Commercial Downloads)와 무료버전(LGPL/Free Downloads)로 나뉜다. 무료버전을 설치하여도 Qt 응용프로그램을 개발하는데 전혀 부족함이 없다. 개발이 목적이므로 윈도우용 Qt SDK를 선택한다. SDK에는 기본적으로 Qt 라이브러리와 개발용 IDE, 그리고 개발 툴들이 포함되어 있다. 2) Qt 설치 설치라고 할 것도 없다. 다운로드한 SDK 파일..
Qt는 현재는 Nokia사에 인수 합병된 trolltech사에서 개발된 GUI 프로그래밍 툴킷이다. Windows 진영의 MFC와 같은 형식으로 GUI 컴포넌트들을 조립하는 형태로 GUI 프로그래밍을 할 수 있다. 현재는 기본적인 GUI 기능을 넘어 네트워크, 테스트 제어 등의 일반 프로그래밍에 필요한 대부분의 기능을 제공하고 있다. 상용 버전도 있지만 완벽한 LGPL 라이센스로 소스 코드까지 오픈되어 있는 아주 매력적인 녀석이다. Qt의 특징을 간략하게 정의하면 다음과 같다. 1) 플랫폼으로부터 독립적이다. Java의 bytecode가 VM을 이용하여 왠만한 OS에선 모두 동작이 가능하다는 특징은 왠만한 사람들은 모두 알고 있을 것이다. 하지만 VM을 이용하는 방식은 bytecode를 runtime시에..