Qt
![category 대표 이미지](https://blog.kakaocdn.net/dn/bMwmlk/btsD7lDWeuR/okCLdZQjeJqAhfuWnChgiK/img.png)
-
⏩ 미러 사이트에서 가까운 위치를 찾아, MaintenanceTool 실행 옵션으로 입력한다. 1. MaintenanceTool이 설치된 경로로 이동하여, 주소창에 "cmd" 를 입력하여 터미널을 실행시킨다. 2. 미러 사이트를 설정하여, MaintenanceTool을 실행시키는 명령어를 터미널에 입력한다. MaintenanceTool.exe --mirror http://ftp.jaist.ac.jp/pub/qtproject/ 3. MaintenanceTool을 실행
<Win> Qt Maintenance⏩ 미러 사이트에서 가까운 위치를 찾아, MaintenanceTool 실행 옵션으로 입력한다. 1. MaintenanceTool이 설치된 경로로 이동하여, 주소창에 "cmd" 를 입력하여 터미널을 실행시킨다. 2. 미러 사이트를 설정하여, MaintenanceTool을 실행시키는 명령어를 터미널에 입력한다. MaintenanceTool.exe --mirror http://ftp.jaist.ac.jp/pub/qtproject/ 3. MaintenanceTool을 실행
2024.01.28 -
깃과 깃허브는 다릅니다. Qt Creator에서 GitHub 업로드 방법만 간단히 요약합니다. ⏩ 작업 환경 Window11 22H2, Qt Creator 12.0.1 Based on Qt 6.6.0 (MSVC 2019, x86_64) Qt Creator 원격 저장소 공식문서 링크 ⏩ 요약 더보기 GitHub Terminal 사용법 요약 git init git commit -m "입력할메시지" git branch -M main git remote add origin 깃허브주소 git push -u origin main GitHub Qt Creator 사용법 요약 Git 설치 Git 시작 Git 로컬 저장소 커밋 GitHub 원격 저장소 생성 GitHub 원격 저장소 설정 Qt Creator Push 단축..
<Win> GitHub in Qt깃과 깃허브는 다릅니다. Qt Creator에서 GitHub 업로드 방법만 간단히 요약합니다. ⏩ 작업 환경 Window11 22H2, Qt Creator 12.0.1 Based on Qt 6.6.0 (MSVC 2019, x86_64) Qt Creator 원격 저장소 공식문서 링크 ⏩ 요약 더보기 GitHub Terminal 사용법 요약 git init git commit -m "입력할메시지" git branch -M main git remote add origin 깃허브주소 git push -u origin main GitHub Qt Creator 사용법 요약 Git 설치 Git 시작 Git 로컬 저장소 커밋 GitHub 원격 저장소 생성 GitHub 원격 저장소 설정 Qt Creator Push 단축..
2024.01.28 -
아키텍처 종류 x86 Intel 32bit CPU Windows, Linux, Mac x86_64 (amd64) x86 호환, Intel 64bit CPU AMD, Intel 라이센스 협약으로 amd64 명칭도 사용 Windows, Linux, Mac arm arm 32bit CPU x86 은 데스크탑, arm은 모바일 등 저전력으로 대표됨 arm64 (arm64/v8) 32bit arm 호환, arm 64bit CPU 모바일, 스마트tv, 가전 등 저전력 장치 애플 M1 이후 아키텍처와 컴퍼일러 빌드 결과물은, 특정 아키텍처에서만 실행되는 바이너리다. 실행되는 아키텍처에 맞는 컴파일러를 선택하여 빌드해야 한다.
CPU 아키텍처와 컴파일러아키텍처 종류 x86 Intel 32bit CPU Windows, Linux, Mac x86_64 (amd64) x86 호환, Intel 64bit CPU AMD, Intel 라이센스 협약으로 amd64 명칭도 사용 Windows, Linux, Mac arm arm 32bit CPU x86 은 데스크탑, arm은 모바일 등 저전력으로 대표됨 arm64 (arm64/v8) 32bit arm 호환, arm 64bit CPU 모바일, 스마트tv, 가전 등 저전력 장치 애플 M1 이후 아키텍처와 컴퍼일러 빌드 결과물은, 특정 아키텍처에서만 실행되는 바이너리다. 실행되는 아키텍처에 맞는 컴파일러를 선택하여 빌드해야 한다.
2023.09.11 -
설치될 작업 환경 확인 *lsb (Linux Standard Base) lsb_release -a 기본 브라우저로 크롬 설정 xdg-settings set default-web-browser chromium-browser.desktop 설치된 Qt Component 확인 *CPU 아키텍처(arm64, amd64, etc)와 컴파일러 JDK JDK 설치방법 + 제거방법 + 환경변수 설정 방법 링크 SDK SDK 다운로드 링크 1. SDK 다운 후 압축 해제 2. Home 경로에 Android 폴더를 만들고, 압축 해제한 파일을 가져온다. 3. 가져온 폴더 이름을 tools로 변경한다. *최종 폴더 경로: /home/basiclike/Android/toolsSDK 다운 후 압축 해제 터미널의 경로 이동 경로..
<Ubuntu> Android 환경설정(2) - Qt, JDK, SDK, NDK설치될 작업 환경 확인 *lsb (Linux Standard Base) lsb_release -a 기본 브라우저로 크롬 설정 xdg-settings set default-web-browser chromium-browser.desktop 설치된 Qt Component 확인 *CPU 아키텍처(arm64, amd64, etc)와 컴파일러 JDK JDK 설치방법 + 제거방법 + 환경변수 설정 방법 링크 SDK SDK 다운로드 링크 1. SDK 다운 후 압축 해제 2. Home 경로에 Android 폴더를 만들고, 압축 해제한 파일을 가져온다. 3. 가져온 폴더 이름을 tools로 변경한다. *최종 폴더 경로: /home/basiclike/Android/toolsSDK 다운 후 압축 해제 터미널의 경로 이동 경로..
2023.09.10 -
*에뮬레이터: (시뮬레이션 가능한) 가상 장치 안드로이드 스튜디오 RAM 설정 설치 할 때 할당될 RAM 크기를 설정 할 수도 있다. 전체 설정에서 설정 할 수 있다. 가상 디바이스마다 설정 할 수 있다. 전체 설정에서 RAM 설정 가상 장치마다 RAM 설정 특정 안드로이드 디바이스를 설정 할 수 있다. 가상 장치 만들기 특정 안드로이드 디바이스를 만들어 설정 할 수 있다. 삼성 스마프폰 가상장치 만들기 삼성 Galaxy Emulator Skin | Samsung Developers 다운로드 링크에서 다운받고, 삼성 Galaxy Emulator Skin 적용 방법 링크 참고하여 만들면 된다. Qt 에서 추가된 가상 장치 적용 방법
Qt, Android 환경설정(4) - 에뮬레이터 설정*에뮬레이터: (시뮬레이션 가능한) 가상 장치 안드로이드 스튜디오 RAM 설정 설치 할 때 할당될 RAM 크기를 설정 할 수도 있다. 전체 설정에서 설정 할 수 있다. 가상 디바이스마다 설정 할 수 있다. 전체 설정에서 RAM 설정 가상 장치마다 RAM 설정 특정 안드로이드 디바이스를 설정 할 수 있다. 가상 장치 만들기 특정 안드로이드 디바이스를 만들어 설정 할 수 있다. 삼성 스마프폰 가상장치 만들기 삼성 Galaxy Emulator Skin | Samsung Developers 다운로드 링크에서 다운받고, 삼성 Galaxy Emulator Skin 적용 방법 링크 참고하여 만들면 된다. Qt 에서 추가된 가상 장치 적용 방법
2023.09.08 -
개발된 어플을 확인하는 방법 연결된 스마트폰 *가상 에뮬레이터 Android Studio의 가상 에뮬레이터에서 내가 만든 어플의 기능을 확인 할 수 있다. 가상 에뮬레이터는, 개발중인 PC에서 독립적인 스마트폰 실행 환경을 만드는 것이다. 스마트폰을 하나 실행시키는만큼 리소스를 차지한다. 컴퓨터 사양, 특히 RAM이 많아야 한다. *에뮬레이터: (시뮬레이션 가능한) 가상 장치 안드로이드 스튜디오 설치 다운로드 페이지 링크 설치 공식 가이드(Window, Mac, Linux) 설치가 완료되면 Qt에서 자동으로 연결되어 선택 가능하다.
Qt, Android 환경설정(4) - 에뮬레이터 설치개발된 어플을 확인하는 방법 연결된 스마트폰 *가상 에뮬레이터 Android Studio의 가상 에뮬레이터에서 내가 만든 어플의 기능을 확인 할 수 있다. 가상 에뮬레이터는, 개발중인 PC에서 독립적인 스마트폰 실행 환경을 만드는 것이다. 스마트폰을 하나 실행시키는만큼 리소스를 차지한다. 컴퓨터 사양, 특히 RAM이 많아야 한다. *에뮬레이터: (시뮬레이션 가능한) 가상 장치 안드로이드 스튜디오 설치 다운로드 페이지 링크 설치 공식 가이드(Window, Mac, Linux) 설치가 완료되면 Qt에서 자동으로 연결되어 선택 가능하다.
2023.09.08 -
Qt 에서 연결된 스마트폰으로 실행 방법 빌드 환경 선택 디버깅 작업 할 장치 선택 실행 확인
Qt, Android 환경설정(3) - 스마트폰 실행Qt 에서 연결된 스마트폰으로 실행 방법 빌드 환경 선택 디버깅 작업 할 장치 선택 실행 확인
2023.09.08 -
개발된 어플을 확인하는 방법 1) 연결된 스마트폰 2) 가상 에뮬레이터 연결된 스마트폰에서 개발자 모드를 활성화하면 내가 만든 어플을 실행 할 수 있다. 안드로이드 스마트폰 개발자 옵션 해제 개발자 옵션 USB 연결 설정 스마트 폰과 PC를 연결할 때 필요한 설정 USB 연결 수락 & 개발자 모드 해제 방법 실행 테스트
Qt, Android 환경설정(3) - 스마트폰 세팅개발된 어플을 확인하는 방법 1) 연결된 스마트폰 2) 가상 에뮬레이터 연결된 스마트폰에서 개발자 모드를 활성화하면 내가 만든 어플을 실행 할 수 있다. 안드로이드 스마트폰 개발자 옵션 해제 개발자 옵션 USB 연결 설정 스마트 폰과 PC를 연결할 때 필요한 설정 USB 연결 수락 & 개발자 모드 해제 방법 실행 테스트
2023.09.08 -
스마트폰에서 내가 만든 안드로이드 앱의 기능을 직접 확인하려면 Qt 에서 JDK, SDK, NDK 설정 필요 Sep.08.2023 Window11 Qt Creator Qt Qt Android 환경설정 공식 문서 링크 실행 테스트 스마트폰 에뮬레이터
<Window> Android 환경설정(2) - Qt, JDK, SDK, NDK스마트폰에서 내가 만든 안드로이드 앱의 기능을 직접 확인하려면 Qt 에서 JDK, SDK, NDK 설정 필요 Sep.08.2023 Window11 Qt Creator Qt Qt Android 환경설정 공식 문서 링크 실행 테스트 스마트폰 에뮬레이터
2023.09.08 -
Qt에서 안드로이드 앱을 개발하려면 Qt 의 Andriod Component 가 필요하다. Qt 설치된 컴포넌트 확인 1. Qt Maintenance Tool 2. Login 3. Add or Remove Components 4. select Android Component Qt, 설치된 컴포넌트와 빌드 가능 리스트 설치된 빌드 컴포넌트 종류에 따라, Qt Creator 프로젝트에서 선택 가능한 빌드 리스트가 달라진다.
Qt, Android 환경설정(1) - 컴포넌트 설치Qt에서 안드로이드 앱을 개발하려면 Qt 의 Andriod Component 가 필요하다. Qt 설치된 컴포넌트 확인 1. Qt Maintenance Tool 2. Login 3. Add or Remove Components 4. select Android Component Qt, 설치된 컴포넌트와 빌드 가능 리스트 설치된 빌드 컴포넌트 종류에 따라, Qt Creator 프로젝트에서 선택 가능한 빌드 리스트가 달라진다.
2023.09.08 -
Stream을 사용하는 이유 프로그램은 일반적으로 누군가로부터 정보를 전달 하거거나, 누군가에게 정보를 전달받는 작업의 연속이다. 정보를 주고받기 위해 Computer는 수많은 입출력(I/O) 장치와 연결된다. Keyboard, Mouse, Monitor, Printer 등 각각 입출력 장치 종류나 각각의 제조사들마다 입출력 방법을 별도로 만드는 것은 불가능하다. 마치 C++ 언어가 CPU 제조사마다 다른것과 같다. 마치 애플이 8핀, 12핀 단자 독자 규격을 사용하는 것과 같다. Stream은 여러 입출력 장치들 간에 데이터를 읽고 쓰는 통일된 방법이다. 입출력 장치의 종류에 상관없이, OS와 Stream 표준으로 입출력 기기간에 데이터를 주고받는다. 장치가 달라지더라도, 항상 똑같은 절차를 통해 데이..
스트림, 파일 디스크립터, 버퍼Stream을 사용하는 이유 프로그램은 일반적으로 누군가로부터 정보를 전달 하거거나, 누군가에게 정보를 전달받는 작업의 연속이다. 정보를 주고받기 위해 Computer는 수많은 입출력(I/O) 장치와 연결된다. Keyboard, Mouse, Monitor, Printer 등 각각 입출력 장치 종류나 각각의 제조사들마다 입출력 방법을 별도로 만드는 것은 불가능하다. 마치 C++ 언어가 CPU 제조사마다 다른것과 같다. 마치 애플이 8핀, 12핀 단자 독자 규격을 사용하는 것과 같다. Stream은 여러 입출력 장치들 간에 데이터를 읽고 쓰는 통일된 방법이다. 입출력 장치의 종류에 상관없이, OS와 Stream 표준으로 입출력 기기간에 데이터를 주고받는다. 장치가 달라지더라도, 항상 똑같은 절차를 통해 데이..
2023.09.06 -
예제 실행 접속, 대화 서버에서 특정 대상에게 메시지 전송 파일 전송 예제 파일 소스 코드 Server #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include namespace Ui { class MainWindow; } // [ex.02] class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; QTcpServer* m..
Qt Network 예제4 - 파일 전송예제 실행 접속, 대화 서버에서 특정 대상에게 메시지 전송 파일 전송 예제 파일 소스 코드 Server #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include namespace Ui { class MainWindow; } // [ex.02] class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; QTcpServer* m..
2023.09.06 -
예제 실행 접속, 대화 접속 종료 예제 파일 소스 코드 Server이면서, Client
Qt Network 예제3예제 실행 접속, 대화 접속 종료 예제 파일 소스 코드 Server이면서, Client
2023.09.05 -
네트워크를 배우는 단계에서 DB, Socket 의 객체를 1개만 생성되도록 강제하고 모든 GUI 객체에서 공유하는 패턴을 기반으로 로직 구현하는 연습한다. Singleton Pattern(싱글톤 패턴) : 클래스의 인스턴가 1개만 생성되도록 강제하는 방식 : 1개의 인스턴스를 모든 객체에서 공유하는 방식 1. 기본 싱글톤 1.1. 기본 개념 #include class Singleton { private: // new 를 사용한 instance 생성을 제한되도록 생성자를 private로 선언 한다. Singleton(){}; ~Singleton() {}; Singleton(const Singleton& other); // 전역 선언, 생성 순서에 기준이 없다. static Singleton instance..
Singleton Pattern(싱글톤 패턴)네트워크를 배우는 단계에서 DB, Socket 의 객체를 1개만 생성되도록 강제하고 모든 GUI 객체에서 공유하는 패턴을 기반으로 로직 구현하는 연습한다. Singleton Pattern(싱글톤 패턴) : 클래스의 인스턴가 1개만 생성되도록 강제하는 방식 : 1개의 인스턴스를 모든 객체에서 공유하는 방식 1. 기본 싱글톤 1.1. 기본 개념 #include class Singleton { private: // new 를 사용한 instance 생성을 제한되도록 생성자를 private로 선언 한다. Singleton(){}; ~Singleton() {}; Singleton(const Singleton& other); // 전역 선언, 생성 순서에 기준이 없다. static Singleton instance..
2023.09.04 -
예제 실행 접속 접속 종료 예제 파일 Serv. 소스 코드 main.cpp #include #include "widget.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); // [ex.01] Widget w; w.show(); return a.exec(); } widget.h #ifndef WIDGET_H #define WIDGET_H #include #include "chatserver.h" namespace Ui { class Widget; } // [ex.02] // Widget 클래스 : QWidget 상속 class Widget : public QWidget { Q_OBJECT public: // [ex.02.1] explici..
Qt Network 예제2예제 실행 접속 접속 종료 예제 파일 Serv. 소스 코드 main.cpp #include #include "widget.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); // [ex.01] Widget w; w.show(); return a.exec(); } widget.h #ifndef WIDGET_H #define WIDGET_H #include #include "chatserver.h" namespace Ui { class Widget; } // [ex.02] // Widget 클래스 : QWidget 상속 class Widget : public QWidget { Q_OBJECT public: // [ex.02.1] explici..
2023.09.01 -
이슈 원인 Qt 6.2.2 이후 QRegExp 라이브러리 제거되어, 최신 Qt 버전에서 레거시 코드를 실행시면 해당 문제가 발생할 수 있다. 해결 Qt 공식 문서 링크
C2065: 'QRegExp': undeclared identifier이슈 원인 Qt 6.2.2 이후 QRegExp 라이브러리 제거되어, 최신 Qt 버전에서 레거시 코드를 실행시면 해당 문제가 발생할 수 있다. 해결 Qt 공식 문서 링크
2023.08.31 -
Shadow build Qt 는 Shadow build 라는 기능으로, 동일한 소스 코드를 필요에 따라 다양한 스타일의 Qt를 빌드 하도록 옵션 기능을 지원한다. 문제는, Shadow build 기능을 체크하고 경로가 고정되어 있으면, 프로젝트 소스코드 경로에 빌드 파일이 생성되지 않고, 지정된 절대 경로에 빌드 파일이 생성된다. 실행시 빌드된 파일의 경로를 찾지 못하여 문제가 발생한다. 이슈 LNK1181: cannot open input file 'debug\main.obj' The build directory is not at the same level as the source directory, which could be the reason for the build failure. 해결법 1 Sh..
LNK1181: cannot open input file 'debug\main.obj'Shadow build Qt 는 Shadow build 라는 기능으로, 동일한 소스 코드를 필요에 따라 다양한 스타일의 Qt를 빌드 하도록 옵션 기능을 지원한다. 문제는, Shadow build 기능을 체크하고 경로가 고정되어 있으면, 프로젝트 소스코드 경로에 빌드 파일이 생성되지 않고, 지정된 절대 경로에 빌드 파일이 생성된다. 실행시 빌드된 파일의 경로를 찾지 못하여 문제가 발생한다. 이슈 LNK1181: cannot open input file 'debug\main.obj' The build directory is not at the same level as the source directory, which could be the reason for the build failure. 해결법 1 Sh..
2023.08.27 -
예제 실행 예제 파일 (주석 있음) 예제 파일 (주석 없음) Serv. 소스 코드 main.cpp #include "widget.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); // [01] Widget w 위젯 객체 생성 Widget w; w.setWindowTitle("TCP 서버"); w.show(); return a.exec(); } widget.cpp #include "widget.h" #include "ui_widget.h" #include #include // [02.1] Widget class 생성자 실행 Widget::Widget(QWidget *parent) : QWidget(parent), ui(ne..
Qt Network 예제1예제 실행 예제 파일 (주석 있음) 예제 파일 (주석 없음) Serv. 소스 코드 main.cpp #include "widget.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); // [01] Widget w 위젯 객체 생성 Widget w; w.setWindowTitle("TCP 서버"); w.show(); return a.exec(); } widget.cpp #include "widget.h" #include "ui_widget.h" #include #include // [02.1] Widget class 생성자 실행 Widget::Widget(QWidget *parent) : QWidget(parent), ui(ne..
2023.08.24 -
Qt 에서 제공하는 네트워크 모듈을 사용하기 위해서는 다음과 같이추가해야 한다. qmake를 사용하는 경우 프로젝트 파일(Project_Name.pro) QT += network CMake를 사용하는 경우 CMake파일(CMakeLists.txt) find_package(Qt6 REQUIRED COMPONENTS Network ) target_link_libraries(01_NetworkCmake Qt${QT_VERSION_MAJOR}::Network) 참고 CMake의 경우, 공식 홈페이지에서 아래와 같이 가이드하지만, 오류가 발생할 수 있다. find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6:..
Qt Network Module 추가Qt 에서 제공하는 네트워크 모듈을 사용하기 위해서는 다음과 같이추가해야 한다. qmake를 사용하는 경우 프로젝트 파일(Project_Name.pro) QT += network CMake를 사용하는 경우 CMake파일(CMakeLists.txt) find_package(Qt6 REQUIRED COMPONENTS Network ) target_link_libraries(01_NetworkCmake Qt${QT_VERSION_MAJOR}::Network) 참고 CMake의 경우, 공식 홈페이지에서 아래와 같이 가이드하지만, 오류가 발생할 수 있다. find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6:..
2023.08.24 -
일반적인 C/C++ 네트워크 프로그래밍 학습은 Socket API 와 Thread를 사용합니다. Qt C++ 에서는 Socket API보다 편리한 Qt Network Modeule을 사용할 수 있고 Thread 대신 Signal 과 Slot 을 사용할 수 있기 때문에 보다 쉽게 네트워크 응용 어플리케이션을 구현할 수 있습니다. 1. Thread 이해 1.1 Program Program은 빌드가 끝난 후 저장 장치에 저장되어 있는 명령어 덩어리로, 메모리에 올라가 있지 않은 상태입니다. 스마트폰을 사용할 때, 스토어 같은 곳에서 앱을 설치하게 되는데 이것이 프로그램입니다. 프로그램을 설치하면 바로 실행이 될까요? 아닙니다. 마우스로 더블 클릭하거나 손으로 터치를 해야 실행이 되는 것이죠. 이렇게 아직 실행..
Qt Network (Signal & Slot)일반적인 C/C++ 네트워크 프로그래밍 학습은 Socket API 와 Thread를 사용합니다. Qt C++ 에서는 Socket API보다 편리한 Qt Network Modeule을 사용할 수 있고 Thread 대신 Signal 과 Slot 을 사용할 수 있기 때문에 보다 쉽게 네트워크 응용 어플리케이션을 구현할 수 있습니다. 1. Thread 이해 1.1 Program Program은 빌드가 끝난 후 저장 장치에 저장되어 있는 명령어 덩어리로, 메모리에 올라가 있지 않은 상태입니다. 스마트폰을 사용할 때, 스토어 같은 곳에서 앱을 설치하게 되는데 이것이 프로그램입니다. 프로그램을 설치하면 바로 실행이 될까요? 아닙니다. 마우스로 더블 클릭하거나 손으로 터치를 해야 실행이 되는 것이죠. 이렇게 아직 실행..
2023.08.24