Qt QComboBox的setEditable与currentTextChanged信号源码分析

서론 최근에 QComboBox에서 항목을 선택하면 자동으로 조건 검색을 트리거하는 기능을 구현했습니다. 그런데 ComboBox를 초기화할 때 시그널 연결 때문에 currentTextChanged 시그널이 발생하는 것을 발견했습니다. 코드는 대략 다음과 같습니다: connect(ui->comboBox, &QComboBox::currentTextChanged, this, &CountryType::slot_pageSearch) ...

6월 6일 23:46에 게시됨

WinForm 개발자를 위한 Qt UI 컨트롤 및 레이아웃 매핑과 핵심 개념

WinForm 환경에서 Qt 프레임워크로 전환할 때 개발자가 가장 먼저 체감하는 장벽은 비즈니스 로직이 아니라 UI 컴포넌트의 명명 규칙과 속성 제어 방식입니다. WinForm은 비주얼 디자이너의 속성 창을 통해 직관적으로 설정하는 반면, Qt는 코드 상에서 열거형(Enum)과 메서드를 활용해 세밀하게 제어하는 접근 방식을 취합니다. 1. 주요 UI 컴포넌트 매핑 테이블 WinForm ...

6월 6일 01:49에 게시됨

Qt 프레임워크 핵심 정리

Qt 개요 Qt는 C++ 기반의 크로스 플랫폼 애플리케이션 프레임워크로, GUI 개발을 중심으로 네트워크, 데이터베이스, 멀티미디어 등 다양한 기능을 제공한다. Windows, Linux, macOS뿐 아니라 Android, iOS, 임베디드 환경까지 동일한 코드베이스로 대응 가능하다. QML과 위젯 방식 QML(Qt Meta-object Language)은 선언형 문법을 활용한 현대적인 UI 구현 방식으로, 터치 ...

6월 5일 17:48에 게시됨

Qt UI와 WPF XAML의 레이아웃 설계 철학 비교

현대적인 GUI 애플리케이션 개발에서 사용자 인터페이스(UI)를 코드와 분리하여 정의하는 방식은 표준으로 자리 잡았습니다. 과거 WinForm 환경에서는 코드가 UI 설계와 밀접하게 얽혀 있었지만, Qt와 WPF는 XML 기반의 선언적 언어를 도입하여 레이아웃과 비즈니스 로직을 깔끔하게 분리합니다. 1. 선언적 UI 정의의 핵심 가치 UI 정의 파일을 분리하면 마치 건 ...

6월 4일 20:27에 게시됨

Qt를 이용한 CAN 버스 개발: SocketCAN에서 PeakCAN까지의 설정 가이드

Qt를 이용한 CAN 버스 개발: SocketCAN에서 PeakCAN까지의 설정 가이드 자동차 전자, 산업 제어 및 임베디드 시스템 개발 분야에서 CAN 버스는 중요한 통신 수단입니다. 그러나 개발자가 Qt 애플리케이션에 CAN 통신을 통합하려고 할 때, 다양한 운영 체제와 하드웨어 인터페이스 사이에서 일관성 있고 유지보수가 쉬운 코드를 작성하는 방법을 찾는 데 어려움을 겪습니다. ...

5월 30일 07:45에 게시됨

Qt에서 USB 장치 접근 및 데이터 통신 구현

Qt를 활용한 USB 통신 개요 IoT와 임베디드 시스템 발전에 따라 USB 통신은 장치 간 연결의 핵심 기술로 부상했습니다. Qt 프레임워크에서 USB 장치 접근 및 데이터 전송을 구현하는 방법을 실제 사례와 코드 분석을 통해 살펴보겠습니다. 1. QtUsb 모듈 개요 QtUsb는 libusb-1.0과 libhidapi 기반의 크로스플랫폼 USB 솔루션으로 다음 기능을 제공합니다: 벌크 전송: ...

5월 28일 09:15에 게시됨

Qt에서 QUdpSocket 직렬화 문제 해결 방법

간단한 Qt 네트워크 프로그램을 개발하던 중, 문자열 외에 사용자 정의 구조체를 전송해야 하는 상황에 직면했습니다. 이를 해결하기 위해 memcpy() 함수를 사용해 데이터를 BYTE 배열로 직렬화하여 네트워크 전송을 구현했습니다. 직렬화는 Java에서 유래한 개념으로, C에는 존재하지 않았지만 C++에서는 후에 직렬화 및 역직렬화 개념이 도입되었습니다. 직렬화란 시스 ...

5월 21일 18:51에 게시됨