All Pages
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은 빌드가 끝난 후 저장 장치에 저장되어 있는 명령어 덩어리로, 메모리에 올라가 있지 않은 상태입니다. 스마트폰을 사용할 때, 스토어 같은 곳에서 앱을 설치하게 되는데 이것이 프로그램입니다. 프로그램을 설치하면 바로 실행이 될까요? 아닙니다. 마우스로 더블 클릭하거나 손으로 터치를 해야 실행이 되는 것이죠. 이렇게 아직 실행..
Qt Network Module
Qt Network Module
2023.08.24네트워크 프로그래밍이란? 프로그램은 일반적으로 정보를 전달 하거거나, 전달받는 작업의 연속입니다. 입출력의 대상은 화면, 키보드, 파일, 데이터베이스, 다른 프로그램 등 다양합니다. 네트워크 프로그래밍은 네트워크를 대상으로 입출력 하는 프로그래밍을 의미합니다. "서로 다른 두 대 이상의 컴퓨터"가 네트워크를 통해 데이터를 주고받는 입출력 프로세스를 구현하는 것입니다. 서로 다른 컴퓨터 간에 정보를 주고받거나, 한 컴퓨터가 다른 컴퓨터에게 데이터를 전달하고, 명령을 내리는 방식으로 메일 서비스, 검색, 메신저 등의 네트워크 프로그램이 동작합니다. 소켓이란? 소켓이란 네트워크를 통해 데이터를 주고받는 방법을 통신 규약에 맞게 함수로 구현해 놓은 것입니다. 이 함수들은 소켓의 생성, 연결, 데이터의 송수신 등..
(멀티 부팅)시간 문제
(멀티 부팅)시간 문제
2023.08.21문제윈도우와 데비안(리눅스)의 시간설정 방식의 차이에서 발생하는 문제다. 윈도우는 메인보드에 저장된 시간이 기본값이다.리눅스에서는 GMT(Greenwich Mean Time) 기준, 현재 위치의 시차가 적용된 시간이 기본값이다. 예) 메인보드 저장된 시간 : 오전 2시, 윈도우: 오전 2시리눅스: 오전11시 (한국 GMT+9, 메인보드 기준 오전 2시 + GMT 9시간) 해결방법리눅스 시간 설정 방식을 윈도우 방식으로 변경터미널 명령 실행윈도우의 시간 설정 방식을 리눅스의 방식으로 변경레지스트리 수정 실행(비교적으로 손쉬운) 리눅스의 시간 방식을 윈도우 방식으로 변경 추천Linux > Terminal > 실행timedatectl set-local-rtc 1 --adjust-system-clock
QML module not found
QML module not found
2023.08.18Issue QML module not found Examples > Application Examples >Coffee Machine Project Solution CMakeLists.txt 에 project's Imports 경로 추가 add the following command to the CMakeLists.txt file to set the QML import path CMakeLists.txt 에 Imports 경로 추가 # Directories where Qt Creator can find QML files. # (Not needed for builds, but makes Qt Creator code completion happy.) list(APPEND QML_IMPORT_PATH "/ho..
Qt 한글 입력시 fcitx5 이슈
Qt 한글 입력시 fcitx5 이슈
2023.08.14fcitx5 을 사용한 한국어 입력의 경우 Qt 등의 프로그램에서 한국어 입력이 불가능한 경우가 있다. QtCreator의 경우, 입력 기능을 우분투의 라이브러리 path를 사용하지 않고, Qt에서 지정된 path를 사용한다. 1. QtCreator에 fcitx5 입력기 라이브러리 경로 설정을 별도로 해주어야 한다. cd (QT 루트 폴더)/{QT 버전}/gcc_64/plugins/platforminputcontexts ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so libfcitxplatforminputcontextplugin.so 2. fcitx5 사용하는 것 대신..
Qt 2
Qt 2
2023.08.14① Qt 개발 분류 Qt는 GUI 개발은, Qt Widgets 또는 QML(Qt Modeling Language) 을 방식으로 나뉜다. Designer 를 활용한 위지위그(WYSIWYG) 개발과, Editor 에서 하드코딩 작업으로 나뉜다. Qt UI 개발 Widgets, Quick 차이 링크 1. Widgets - Qt Editor 책 Ch. 3.1 Qt GUI Widgets에서 예제로 설명되어 있는 부분이다. 2. Widgets - Qt Designer 책 Ch. 3.5 Qt Designer 를 이용한 GUI 설계 및 제작 에서 예제로 설명되어 있는 부분이다. https://youtu.be/LnVjI0I7cKs 3. QML - Qt Editor https://youtu.be/M_d0txbIeq8 4...
우분투 22.04 자동 로그인
우분투 22.04 자동 로그인
2023.08.11원격 및 화면 공유시 로그인 화면이 문제가 될 수 있다. 1. gdm3 - GNOME Display Manager 설정창 nano로 열기 sudo nano /etc/gdm3/custom.conf 아래와 같이 주석 제거 Enabling automatic login 2. 재부팅 하면 로그인 없이 자동 로그인
디스코드 전체화면 공유 문제
디스코드 전체화면 공유 문제
2023.08.11Issue디스코드 어플리케션 각각은 공유 가능S전체화면 공유 불가 waylandUbuntu 22.04 display feature called wayland by default, Wayland does not support screen sharing by default (2023. 08. 11)리눅스, 유닉스의 GUI부분을 담당하는 Xorg, Xfree86을 대신해서 새로 만들어지는 디스플레이 프로토콜로, 디스코드 화면 공유와 호환되지 않는다.Zoom 의 경우도 마찬가지다. 1. 디스코드 삭제, 재설치sudo apt-get --purge remove discordsudo snap install discord 2. 우분투 디스플레이 시스템 확인출력결과가 wayland 라면, wayland 대신 xor..