All Pages
Android 환경설정(2) <Window> - JDK, SDK, NDK 설정
Android 환경설정(2) <Window> - JDK, SDK, NDK 설정
2023.09.08안드로이드 스마트 폰에 Qt로 만든 안드로이드 어플을 테스트하려면, 아래 두 환경설정이 필요하다.1. Qt Android Component 설치2. Qt Creator 에서 JDK, SDK, NDK 설정 (윈도우 or 우분투) Sep.08.2023Window11Qt CreatorQt 6.5 Qt Android 환경설정 공식 문서 링크윈도우에서 설정은 자동으로 진행되어 상태적으로 쉬운 편이다. 실행 테스트스마트폰에뮬레이터
Qt, Android 환경설정(1) - 안드로이드 컴포넌트 설치
Qt, Android 환경설정(1) - 안드로이드 컴포넌트 설치
2023.09.08안드로이드 스마트폰에 Qt로 만든 어플을 테스트하려면, 아래 두 환경설정이 필요하다.1. Qt Android Component 설치2. Qt Creator 에서 JDK, SDK, NDK 설정 1. Qt Maintenance 를 실행하여, 설치된 Qt 컴포넌트 확인 및 설치 1.1 안드로이드 컴포넌트 설치 방법 1.1.1 Qt Maintenance Tool 을 미러 사이트 옵션과 함께 실행./qt(*파일명 입력 또는 탭 완성) --mirror http://ftp.jaist.ac.jp/pub/qtproject/ 1.1.2. Login 1.1.3. Add or Remove Components 1.1.4. select Android Component 1.2 안드로이드 컴포넌트 설치 방법 1.2..
Qt Network 예제4 - 파일 전송
Qt Network 예제4 - 파일 전송
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 예제3
Qt Network 예제3
2023.09.05예제 실행 접속, 대화 접속 종료 예제 파일 소스 코드 Server이면서, Client
Singleton Pattern(싱글톤 패턴)
Singleton Pattern(싱글톤 패턴)
2023.09.04네트워크를 배우는 단계에서 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..
Qt Network 예제2
Qt Network 예제2
2023.09.01예제 실행 접속 접속 종료 예제 파일 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..
C2065: 'QRegExp': undeclared identifier
C2065: 'QRegExp': undeclared identifier
2023.08.31이슈 원인 Qt 6.2.2 이후 QRegExp 라이브러리 제거되어, 최신 Qt 버전에서 레거시 코드를 실행시면 해당 문제가 발생할 수 있다. 해결 Qt 공식 문서 링크
LNK1181: cannot open input file 'debug\main.obj'
LNK1181: cannot open input file 'debug\main.obj'
2023.08.27Shadow 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..
Qt - QMainWindow
Qt - QMainWindow
2023.08.27QMainWindow 형식링크 QMainWindow, QWidget 비교Main Window 예제 검색어: Diagram SceneWidget 예제 검색: 40000 Chips QMenuBar링크QMenuBar QToolBar링크QToolBar QStatusBar QDockWidget QMainWindow 상속 관계 MDI, SDI 비교 QMainWindow 만들기
Qt Network 예제1
Qt Network 예제1
2023.08.24예제 실행 예제 파일 (주석 있음) 예제 파일 (주석 없음) 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 Module 추가
Qt Network Module 추가
2023.08.24Qt 에서 제공하는 네트워크 모듈을 사용하기 위해서는 다음과 같이추가해야 한다. 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 (Signal & Slot)
Qt Network (Signal & Slot)
2023.08.24일반적인 C/C++ 네트워크 프로그래밍 학습은 Socket API 와 Thread를 사용합니다. Qt C++ 에서는 Socket API보다 편리한 Qt Network Modeule을 사용할 수 있고 Thread 대신 Signal 과 Slot 을 사용할 수 있기 때문에 보다 쉽게 네트워크 응용 어플리케이션을 구현할 수 있습니다. 1. Thread 이해 1.1 Program Program은 빌드가 끝난 후 저장 장치에 저장되어 있는 명령어 덩어리로, 메모리에 올라가 있지 않은 상태입니다. 스마트폰을 사용할 때, 스토어 같은 곳에서 앱을 설치하게 되는데 이것이 프로그램입니다. 프로그램을 설치하면 바로 실행이 될까요? 아닙니다. 마우스로 더블 클릭하거나 손으로 터치를 해야 실행이 되는 것이죠. 이렇게 아직 실행..