25.08.10 학습개발일지 / QT6 Chapter 10

2025. 8. 11. 09:20·LMS 7/개발일지

QT6 Chapter 10

<widget.ui>

<widget.h>

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;

private slots:
    void slider1_valueChanged(int value);
    void slider2_valueChanged(int value);
    void slider3_valueChanged(int value);


};
#endif // WIDGET_H

>

#include <QWidget>

: Qt의 기본 위젯 클래스 Qwidget 헤더파일

​

>

QT_BEGIN_NAMESPACE

namespace Ui { class Widget; }

QT_END_NAMESPACE

: Qt namespace 내에 Ui 클래스를 정의

​

>

class Widget : public QWidget

: QWidget을 상속한 Widget 클래스 정의

​

>

Q_OBJECT

: 시그널(Signal) & 슬롯(Slot) 매커니즘을 사용하기 위한 매크로(필수요소)

​

>

public:

Widget(QWidget *parent = nullptr);

~Widget();

: 생성자와 소멸자

​

>

private:

Ui::Widget *ui;

: Qt Designer를 사용하여 만든 UI를 제어하는 멤버변수(ui 포인터를 사용하여 접근)

​

>

private slots:

void slider1_valueChanged(int value);

void slider2_valueChanged(int value);

void slider3_valueChanged(int value);

: 슬롯(Slot)함수, 시그널을 통해 행동할 함수들

 

<widget.cpp>

#include "widget.h"
#include "./ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    connect(ui->slider1, SIGNAL(valueChanged(int)),
            this,        SLOT(slider1_valueChanged(int)));
    connect(ui->slider2, SIGNAL(valueChanged(int)),
            this,        SLOT(slider2_valueChanged(int)));
    connect(ui->slider3, SIGNAL(valueChanged(int)),
            this,        SLOT(slider3_valueChanged(int)));

}

Widget::~Widget()
{
    delete ui;
}

void Widget::slider1_valueChanged(int value)
{
    ui->spinBox1->setValue(value);
}

void Widget::slider2_valueChanged(int value)
{
    ui->spinBox2->setValue(value);
}

void Widget::slider3_valueChanged(int value)
{
    ui->spinBox3->setValue(value);
}

 

>

Widget::Widget(QWidget *parent)

ui(new Ui::Widget)

: 생성자, ui 포인터를 통해 Qt Designer로 생성한 UI를 힙에 동적할당

​

>

ui->setupUi(this);

: 현재 위젯(this)에 UI를 설정함

​

>

connect(ui->slider1, SIGNAL(valueChanged(int)),

this, SLOT(slider1_valueChanged(int)));

connect(ui->slider2, SIGNAL(valueChanged(int)),

this, SLOT(slider2_valueChanged(int)));

connect(ui->slider3, SIGNAL(valueChanged(int)),

this, SLOT(slider3_valueChanged(int)));

: ui->sliderN 위젯에서 valueChange(int) 시그널이 발생하면,

현재 위젯(this)의 sliderN_valueChanged 슬롯 함수를 호출하도록 연결함

​

>

Widget::~Widget()

{

delete ui;

}

: 소멸자

​

>

void Widget::slider1_valueChanged(int value)

{

ui->spinBox1->setValue(value);

}

void Widget::slider2_valueChanged(int value)

{

ui->spinBox2->setValue(value);

}

void Widget::slider3_valueChanged(int value)

{

ui->spinBox3->setValue(value);

}

: 슬롯 함수들, connect의 시그널을 통해 발생한 int 값을 인자로 삼아 호출됨(connect의 구조상 SIGNAL과 SLOT의 인자의 타입과 개수는 같아야 함)

'LMS 7 > 개발일지' 카테고리의 다른 글

25.08.13 / QT6 개인 프로젝트 1  (4) 2025.08.13
25.08.11 학습개발일지 / QT6 Chapter26, 28  (3) 2025.08.13
25.08.08 학습개발일지 / QT6 Chapter06, 09  (1) 2025.08.11
25.08.07 학습개발일지 / QT6 Chapter05(2)  (2) 2025.08.11
25.08.06 학습개발일지 / QT6 Chapter 05(1)  (2) 2025.08.10
'LMS 7/개발일지' 카테고리의 다른 글
  • 25.08.13 / QT6 개인 프로젝트 1
  • 25.08.11 학습개발일지 / QT6 Chapter26, 28
  • 25.08.08 학습개발일지 / QT6 Chapter06, 09
  • 25.08.07 학습개발일지 / QT6 Chapter05(2)
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
25.08.10 학습개발일지 / QT6 Chapter 10
상단으로

티스토리툴바