이전 장에서는 소스코드를 일일히 분석하면서 해보았지만, 현재 주어진 시간내에서 모든 기능의 소스코드를 분석 할 수는 없을 것 같다. 따라서, 일단 디자인틀이 없이 코드만으로 구현할 수 있는 기능은 이정도가 있다 까지만 정리하고 넘어가기로 한다.
QTime 클래스와 QTimeEdit 위젯 클래스
QTime 클래스는 시간을 표시하거나 특정 조건에 비교 등 어플리케이션 개발에 필요한시간 관련 기능을 쉽게 구현할 수 있다. QTimeEdit는 QTime 클래스로부터 얻어온 시간을 GUI인터페이스 상에 표시할 수 있는 기능을 제공한다.
QDateTime 클래스와 QDateTimeEdit 위젯
- QDateTime 클래스는 날짜와 시간을 함께 다룰 수 있는 클래스 이며 QDateTimeEdit 클래스는 날짜와 시간을 표시할 수 있다. QDateTimeEdit 클래스의 setDisplayFormat( )멤버 함수는 포맷에 따라 날짜와 시간을 표시할 수 있다.
QDial
- QDial 위젯 클래스는 다이얼과 같은 GUI 인터페이스를 제공한다. 예를 들어 볼륨 조절
시 다이얼을 돌려 조절하는 것과 같은 GUI를 제공한다.
QSpinBox 와 QDoubleSpinBox
- QSpinBox 클래스는 int형 데이터 타입의 정수 값을 상하 버튼을 이용해 변경할 수 있는 GUI를 제공한다.
- double 데이터 타입을 사용하기 위해서는 QDoubleSpinBox 위젯을사용하면 된다.
QSpinBox와 QDoubleSpinBox 위젯 클래스는 사용자가 변경할 수 있는 값의 범위를 제한할 수 있으며 숫자가 표시되는 Prefix와 Suffix 부분에 특정 문자 혹은 단위를 가리키는 문자를 사용할 수 있다. - 예를 들어 화폐 기호를 위젯 안에 사용할 수 있다.
QPushButton 과 QFocusFrame
- QPushButton 위젯은 버튼 기능을 제공한다.
- QFocusFrame은 바깥쪽에 Outer Line을 사용해야 할 경우 QFocusFrame을 사용하면 유용하다.
- 이 외에도 QFocusFrame은 QStyle(HTML에서 사용하는 Style Sheet) 을 사용 할 수 있다.
- QPushButton 위젯 바깥쪽에 Outer Line을 그리기 위해 QFocusFrame를 사용하는 방법은 다음과 같다.
QFontComboBox
- QFontComboBox 위젯은 GUI상에 폰트를 선택하기 위한 GUI를 제공한다.
- 이 위젯은폰트가 알파벳 순서로 나열되고, 폰트의 모양도 확인할 수 있다.
QLabel 과 QLCDNumber
- QLabel 위젯은 어플리케이션 상에서 텍스트 또는 이미지를 표시하는 기능을 제공한다.
QLCDNumber 위젯은 숫자만 표시할 수 있으며 디지털 시계와 같은 형태로 숫자를 표시할 수 있다. - QLCDNumber 위젯은 시간을 표시할 때 사용하는 “ : ” 문자를 함께 사용할 수 있다.
QLineEdit(로그인창 위젯 활용)
- QLineEdit 위젯은 텍스트를 입력 및 수정을 위한 GUI를 제공한다.
- QLineEdit 클래스 위젯에서 복사, 붙여 넣기, 자르기 등의 기능을 제공한다.
QMenu 와 QMenuBar 클래스를 이용한 메뉴(상단 메뉴바)
- QMenu 와 QMenuBar 클래스 위젯은 메뉴 기능을 제공한다.
- QMenu 위젯은 메뉴를 만들기 위해 제공하는 위젯으로써 addAction( )과 addMenu( ) 멤버 함수를 제공한다.
- 아래는 이 함수들을 이용해 작성한 소스코드이다.
QProgressBar(로딩 및 설치 시)
- 진행사항을 표시하기 위한 위젯으로 QProgressBar 위젯을 사용할 수 있으며 위젯의 배치 방향을 가로 또는 세로로 표시할 수 있다. QProgressBar 위젯은 가로 방향으로 배치할 경우 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 진행방향을 변경할 수 있다.
- 반대로 세로 방향으로 배치할 경우 아래에서 위로, 위에서 아래로 진행 방향을 표시할 수있다.
QRadioButton
- QRadioButton 위젯은 사용자에게 여러 항목 중 하나를 선택할 수 있는 GUI를 제공한다.
- 예를 들어 On(checked) 혹은 Off(unchecked)와 같이 둘 중 하나를 선택할 수 있다.
QScrollArea
- QScrollArea 위젯은 GUI가 표시되는 윈도우 상에서 위젯들을 모두 표시할 수 없는 경우 스크롤 바를 이용해 가려진 부분으로 이동하는 방식으로 GUI를 모두 표시할 수 있는 기능을 제공한다.
- 예를 들어 어떤 이미지를 축소하지 않고 화면에 표시 하고자 할 때 GUI 위젯의 크기가부족하게 되면 좌측 또는 하단에 스크롤이 생겨 마우스로 스크롤을 이동하면서 이미지를 볼 수 있는 것과 같은 기능을 제공한다.
QScrollBar
- QScrollBar 위젯 클래스는 슬라이더 위젯의 모양과 비슷하다.
- QScrollBar 위젯은 좌우혹은 상하 위치 시킬 때 세로 방향 혹은 가로 방향으로 직접 배치할 수 있는 기능을
제공한다.
QSizeGrip
- QSizeGrip 클래스 위젯은 한정된 크기의 윈도우 영역 안에 위젯의 크기를 조절할 수있다.
- 예를 들어 MS Windows의 탐색기와 같이 왼쪽에는 트리 영역, 오른쪽은 파일 및디렉토리 속성을 보여주는 GUI 상에서 트리 영역의 경계선을 마우스로 드래그하여 줄이거나 늘릴 수 있다.
QSlider
- QSlider 위젯은 최소값과 최대값을 지정한 범위 내에서 설정 값을 변경할 수 있는 GUI를 제공한다.
- 이 위젯은 QScrollBar와 유사하다. setMinimum( )과 setMaximum( ) 멤버함수를 사용해 최소값과 최대값을 설정할 수 있다.
- 최소값과 최대값을 설정하기 위해 setRange( ) 멤버 함수를 사용할 수 있다.
QTabWidget(많은 위젯 배치 시 필요)
- 많은 위젯을 배치할 경우 또는 윈도우의 크기가 제한적일 때 이 위젯을 사용하면 유용하다.
- 이 위젯은 제한된 크기에 모든 탭을 표시할 수 없을 경우 동적으로 페이지를 이동할 수 있는 기능을 제공한다.
- QWidget으로 선언한 위젯을 tab 인스턴스 위젯 상에 배치하기 위해 addTab( ) 멤버 함수를 사용하면 된다.
- 각 탭 상에 위젯을 배치하는 방법은 위젯을 배치하기 위해 부모클래스를 인자로 명시한 것처럼 부모 클래스를 탭 위젯으로 명시하면 그 위젯이 해당 탭 내에 위젯을 배치할 수 있다.
QToolBar 와 QAction(툴바)
- QToolBar 위젯은 윈도우 상에 툴 메뉴 바와 같은 GUI를 제공한다.
- QToolBar 위젯은 addAction( ) 멤버 함수를 이용해 툴바 상에 메뉴를 추가할 수 있다.
QWidget
- 지금까지 살펴본 위젯은 QWidget으로부터 상속받아 구현한 위젯이다.
- 예를 들어 마우스, 키보드 혹은 윈도우로부터 받은 이벤트를 QPushButton과 같은 위젯에서 사용할 수있는 것도 QWidget 으로부터 상속받았기 때문에 가능하다.
- QWidget 클래스는 paintEvent( ) virtual 함수를 이용해 위젯 영역에 텍스트, 도형(선, 원,사각형 등), 이미지를 랜더링 할 수 있는 기능을 제공한다.
- 또한 QWidget 클래스의 update() 멤버 함수를 호출하면 paintEvent ( ) 함수를 호출 할 수 있다.
- 예를 들어 어떤버튼을 클릭하면 호출되는 Slot 함수내에 update() 멤버함수를 사용하면 paintEvent( ) virtual 함수가 호출 된다.
- 따라서 QWidget 의 Paint 영역을 다시 Drawing한다.
- QWidget 클래스는 resizeEvent( ) virtual 함수를 제공한다.
- 이 virtual 함수는 QWidget의 크기가 변경되면 호출된다.
- QWidget 영역 내에 마우스 이벤트를 처리, 키보드 이벤트, 위젯의 영역에 활성화가 Focus 되어 있는지 등의 다양한 virtual 함수를 제공한다.
QTabBar
- QTabBar 클래스 위젯은 탭 GUI를 제공한다.
- 이 위젯은 QTabWidget 과 비슷한 기능을제공한다. 탭에 아이콘을 사용 하기 위해서 setTabIcon( ) 함수를 사용하면 된다.
- 각 탭에 표시되는 텍스트가 구별되게 컬러 지정이 가능하다.
- 탭의 텍스트를 지정하기 위해setTabTextColor( ) 함수를 사용하면 된다.
QToolBox
- QToolbox 클래스 위젯은 위젯 아이템들을 새로 방향 탭 컬럼 형태로 GUI를 제공한다.
- 각 탭의 이름으로 텍스트와 아이콘을 사용할 수 있다.
QToolButton
- QToolButton 위젯은 텍스트 또는 아이콘을 사용해 버튼과 같은 기능을 제공한다.
- QToolButton의 아이콘은 QIcon 클래스를 이용해 지정할 수 있다.
- 아이콘은 상태에 따라 활성화 또는 비활성화된 상태로 표시할 수 있으며 비활성화 상태에서는 버튼을 사
용할 수 없다. - setToolButtonStyle( ) 멤버 함수를 이용하면 스타일을 변경 할 수 있으며 setIConSize( )
함수를 이용하면 아이콘의 크기를 지정할 수 있다.
'Qt프로그램' 카테고리의 다른 글
Qt Designer 를 이용한 GUI 설계 (3) | 2024.10.08 |
---|---|
Signal and Slot (1) | 2024.10.08 |
Layout (0) | 2024.10.08 |
Qt GUI Widgets (0) | 2024.10.07 |
qmake / CMake / console / GUI (0) | 2024.10.07 |
댓글