no image
QT project - QTimer 사용하기
QTimer 사용해보기QTimer 클래스는 지정한 시간을 기준으로 반복해 호출할 수 있다.QTimer 클래스는 stop() 멤버 함수를 이용해 타이머를 정지할 수 있다. 만약 타이머를 반복해서 실행하지 않고 단 한번만 호출되도록 하기 위해 singleShot() 멤버 함수를 사용하면 된다. QTimer::singleShot(200, this, SLOT(updateCaption()));singleShot() 멤버 함수의 첫 번째 인자는 경과 되는 시간이며 단위는 밀리 세컨드 이다.그리고 세번째 인자는 첫 번째 인자의 시간이 경과된 후 호출될 Slot 함수를 지정하면 된다.현재 시간 코드헤더파일#ifndef WIDGET_H#define WIDGET_H#include #include QT_BEGIN_NAMES..
2024.07.16
no image
QT project - 응용 프로그램 만들어보기
서론메인 화면에 다양한 버튼을 클릭하여 새로운 레이아웃을 띄운 후QT가 지원하거나 다양한 응용 프로그램이 동작 할 수 있는 프로젝트를 해보자 디자인현재 5가지 버튼만 넣어봤지만 추후 프로젝트를 진행하면서 버튼을 추가 할 예정이다.
2024.07.16
no image
QT - TcpSocket 통신 Client
서론QTcpServer 클래스와 QTcpSocket 클래스를 이용해 서버/클라이언트를 구현해보자 QTcpClient 그림과 같이 GUI 상에 위젯을 배치해 보도록 하자. CMAKE 기반 프로젝트는 아래 코드를 추가하자find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network)find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network)target_link_libraries(QTcpClient PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network) QMAKE 기반 프로젝트는 아래 코드를 추가하자QT += netw..
2024.07.15
no image
QT - TcpSocket 통신 Server
서론QTcpServer 클래스와 QTcpSocket 클래스를 이용해 서버/클라이언트를 구현해보자 QTcpServer 그림과 같이 GUI 상에 위젯을 배치해 보도록 하자. CMAKE 기반 프로젝트는 아래 코드를 추가하자find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network)find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network)target_link_libraries(QTcpServer PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network) QMAKE 기반 프로젝트는 아래 코드를 추가하자QT += netw..
2024.07.15
no image
QT - 네트워크 프로그래밍, socket
네트워크 프로그래밍이란?네트워크를 대상으로 입출력하는 프로그래밍을 의미한다.서로 다른 두 대 이상의 컴퓨터가 네트워크를 통해 데이터를 주고 받는 입출력 프로세스를 구현한 것이다. Socket이란?네트워크를 통해 데이터를 주고 받는 방법을 통신 규약에 맞게 함수로 구현해 놓은 것이다.이 함수들은 소켓의 생성, 연결, 데이터의 송수신 등의 작업 등을 구현 해놓은 API이다. 물론 Socket으로 네트워크 통신 기능을 구현하기 위해서는, 소켓의 생성, 만들어진 소켓을 통해 데이터를 주고 받는 절차에 대한 이해, 운영체제 및 프로그래밍 언어에 종속적으로 제공되는 소켓 API 사용법을 숙지해야 하지만, 개발자는 소켓의 구현만 고려하면 되는 프로그래밍 이점을 가진다. Socket Network Program 실행 ..
2024.07.12
no image
QT - Dialog(QInputDialog)
QInputDialog::getInt() & QInputDialog::getDouble()사용자로부터 값(integer, double)을 입력 받을 수 있다.헤더파일에 #include 를 해줘야 한다. widget.cpp#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget){ ui->setupUi(this); bool retValue; int i = QInputDialog::getInt(this, "put integer", "Percent:",25,0,100,1,&retValue); if(retValue){ qDebu..
2024.07.12
QT - Dialog
Dialog다이얼로그는 애플리케이션이 동작 중에 이벤트가 발생했을 때 사용자에게 메시지를 전달하기 위한 목적으로 사용된다.그리고 사용자로부터 입력 값을 받거나 여러 개 중 하나를 선택할 수 있는 GUI를 제공한다.다음 표는 QT에서 제공하는 다이얼로그 중 자주 사용되는 다이얼로그이다. 종류설명QInputDialog사용자로부터 값을 입력 받을 수 있는 다이얼로그QColorDialog특정 컬러를 선택할 수 있는 다이얼로그 QFileDialog파일 또는 디레곹리를 선택하는 GUI 인터페이스를 제공QFontDialog폰트를 선택하기 위한 다이얼로그QProgressDialog퍼센트와 같은 진행사항을 보여주기 위한 다이얼로그QMessageBox모달 방식의 다이얼로그
2024.07.12
no image
QT - Signal and Slot (3)
서론QSlider와 QSpinBox를 사용하여 connect를 연습해보자. horizontalLayout을 사용하여 총 3쌍을 배치하였다. widget.h#ifndef WIDGET_H#define WIDGET_H#include QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = nullptr); ~Widget();private: Ui::Widget *ui;private slots: void slider1_valueChanged(int value); void slider2_valueCh..
2024.07.12