Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 배열문제
- 언리얼
- 그림자 효과
- 셰이더
- c#
- python
- 화살표 함수
- 이득우언리얼
- Unity
- 화살표 메서드
- 가변배열
- swipe
- 이득우
- visualstudio2022
- 파이썬
- 표창던지기
- premake5
- IMGUI
- 다중상속
- 3차원배열
- 렌더몽키
- 공부
- uidesign
- 유니티
- 비주얼스튜디오
- rendermonkey
- c++class
- C++
- 게임만들기
- 화살피하기
Archives
- Today
- Total
신입 개발자 공부 과정
QMainWindow: Qt의 메인 창 관리 클래스 본문
QMainWindow는 Qt에서 애플리케이션의 메인 창을 생성하고 관리하는 데 사용되는 핵심 클래스입니다. 이 클래스는 기본적인 사용자 인터페이스의 틀을 제공하며, 메뉴, 도구 모음, 상태 표시줄 등을 손쉽게 추가할 수 있는 기능을 제공합니다.
아래는 QMainWindow의 주요 특징과 사용법에 대한 요약입니다.
1. QMainWindow의 주요 구성 요소
QMainWindow는 다음과 같은 표준 구성 요소를 포함할 수 있습니다:
- Central Widget (중앙 위젯)
메인 콘텐츠를 표시하는 영역으로, 반드시 하나의 위젯만 설정할 수 있습니다.
QWidget *widget = new QWidget(this); setCentralWidget(widget);
- Menu Bar (메뉴 바)
메뉴 항목을 포함하는 상단 바입니다. menuBar() 메서드를 사용해 접근하거나 사용자 정의 메뉴를 추가할 수 있습니다.
QMenu *fileMenu = menuBar()->addMenu("File"); fileMenu->addAction("Open");
- Tool Bar (도구 모음)
빠른 작업을 위한 도구 아이콘들을 배치합니다. addToolBar() 메서드로 쉽게 추가할 수 있습니다.
QToolBar *toolBar = addToolBar("Main Toolbar"); toolBar->addAction("Save");
- Status Bar (상태 표시줄)
애플리케이션의 상태 정보를 표시합니다. statusBar() 메서드를 사용해 메시지를 추가하거나 업데이트할 수 있습니다.
statusBar()->showMessage("Ready");
- Dock Widgets (도킹 위젯)
추가적인 도구나 정보 패널을 제공하며, 메인 창의 주변으로 배치할 수 있습니다.
QDockWidget *dock = new QDockWidget("Dock", this); addDockWidget(Qt::LeftDockWidgetArea, dock);
2. 생성자와 기본 설정
QMainWindow는 기본적으로 다음과 같이 생성할 수 있습니다:
QMainWindow *mainWindow = new QMainWindow();
mainWindow->setWindowTitle("My Application");
mainWindow->resize(800, 600);
- 창 제목 설정: setWindowTitle() 메서드 사용
- 창 크기 조정: resize() 또는 setGeometry() 메서드 사용
3. 주요 메서드
- setCentralWidget(QWidget *widget)
중앙 콘텐츠 위젯을 설정합니다. - menuBar()
메뉴 바 객체를 반환합니다. - addToolBar(const QString &title)
도구 모음을 추가합니다. - statusBar()
상태 표시줄 객체를 반환합니다. - addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockWidget)
도킹 위젯을 지정된 위치에 추가합니다.
4. QMainWindow를 활용한 간단한 예제
#include <QApplication>
#include <QMainWindow>
#include <QMenu>
#include <QToolBar>
#include <QStatusBar>
#include <QWidget>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMainWindow mainWindow;
mainWindow.setWindowTitle("QMainWindow Example");
// 중앙 위젯 설정
QWidget *centralWidget = new QWidget();
mainWindow.setCentralWidget(centralWidget);
// 메뉴 바 추가
QMenu *fileMenu = mainWindow.menuBar()->addMenu("File");
fileMenu->addAction("Open");
fileMenu->addAction("Exit");
// 도구 모음 추가
QToolBar *toolBar = mainWindow.addToolBar("Main Toolbar");
toolBar->addAction("Save");
// 상태 표시줄 메시지 설정
mainWindow.statusBar()->showMessage("Application is ready");
mainWindow.resize(800, 600);
mainWindow.show();
return app.exec();
}
5. 사용 시 유의사항
- 중앙 위젯은 하나만 설정 가능: setCentralWidget()은 단 하나의 위젯만 받을 수 있으므로, 복잡한 레이아웃이 필요하다면 QWidget과 레이아웃 관리자를 조합해야 합니다.
- 도킹 위젯 관리: 도킹 위젯은 사용자가 재배치할 수 있도록 기본적으로 지원하지만, 특정 위치에 고정하려면 setFeatures()를 활용해 제어할 수 있습니다.
QMainWindow는 직관적인 API와 풍부한 기능으로 데스크톱 애플리케이션 개발에 최적화된 클래스입니다. 이를 활용하면, 사용자가 기대하는 고급 사용자 인터페이스를 손쉽게 구현할 수 있습니다.
ChatGpt 요약 내용
'C++ > 공부' 카테고리의 다른 글
C++ 처음부터 다시 공부하기 (진행 중) (1) | 2024.04.15 |
---|---|
프로그래머스 의상 C++ (1) | 2023.12.05 |
[프로그래머스] 완주하지 못한 선수 - Hash (1) | 2023.12.01 |
프로그래머스 0 떼기 (1) | 2023.11.30 |
프로그래머스 하샤드 수 C++ (0) | 2023.11.07 |