목록C++ (34)
It won't hurt to try
1. 범위 조정 위젯 범위 조정 위젯의 개요 숫자로 되어 있는 범위 내의 값 입력 및 표시 사용자가 미리 정해 놓은 특정 범위의 값을 선택하기 위해 사용 기본값의 범위 : 0~99 원형 순환(Circular) 순환되는 값을 만들고 싶으면 setWrapping() 메소드를 이용 범위 조정 위젯은 크게 2가지로 구분 QDoubleSpinBox, QSpinBox위젯은 QAbstractSpinBox 클래스를 상속 QSlider, QScrollBar 및 QDial 위셋은 QAbstractSlider 클래스를 상속 숫자 형태의 값을 입력 받을 때 사용 스핀 박스 왼쪽에 있는 화살표를 이용하여 값을 변경 최대값과 최소값을 설정해서 사용 기본값 : 보통 0 (minimum 속성) ~ 99 (maximum 속성) 증감하..

Qt의 버튼 위젯 1. 버튼 관련 위젯 버튼 관련 위젯은 모두 QAbstractButton 클래스를 상속 버튼 : QPushButton 위젯, QToolButton 위젯 등 마우스의 버튼을 누르거나 떼거나(Release) 하는 입력이나 옵션 선택과 같은 입력에 버튼(Button)을 사용 옵션 선택 : QRadioButton 위젯, QCheckBox 위젯 등 라디오 버튼(Radio Button) : 한 번에 하나의 옵션만 선택 체크 박스(Check Box) : 동시에 하나 또는 여러 옵션을 선택 버튼이 갖는 기본적인 기능을 구현한 추상 클래스 텍스트(text)나 아이콘(icon)을 표시할 수 있는 메소드를 제공 setText(), setIcon() 메소드 autoRepeat 속성 : 버튼을 누르고 있으면 ..

Qt의 정보 표시 위젯 1. 정보 표시 관련 위젯 사용자에게 정보 표시를 위해서 사용 문자열이나 숫자, 그림 또는 진행 상태 등의 정보를 표시 Qt에서는 QLabel, QLCDNumber, QProgressBar, QTextBrowser 위젯 등을 제공 QLabel과 QLCDNumber 위젯 : QFrame 클래스를 상속 QProgressBar 위젯 : QWidget 클래스를 상속 QTextBrowser 위젯 : QTextEdit 클래스를 상속 2. QLabel 위젯 레이블(Label) 형태로 사용자에게 정보를 표시할 때 사용 문자열(String)뿐만 아니라 픽스맵(Pixmap), 그림(Picture), 영화(Movie)의 여러 형식의 정보들을 표시 setText() 메소드 : QString 데이터 형의..

1. Qt의 기본 위젯 위젯(Widget) 사용자와의 의사 소통을 위해서 사용하는 버튼, 메뉴, 스크롤 바, 메시지 박스와 같은 요소 Qt의 위젯들은 QWidget 클래스를 상속 위젯들은 일반적으로 정보 입력(Input)을 위한 것과 정보를 표시하기(Display) 위한 것으로 구분 2. 윈도의 계층 구조 윈도의 계층 구조 윈도와 위젯은 계층 구조를 가짐 X윈도는 트리(Tree) 구조의 계층 구조 윈도와 위젯들은 구성 최상위(Top Level) 윈도 : 루트 (Root) 윈도 → MS 윈도우의 바탕화면, X 서버에서는 각 화면별로 루트 윈도를 자동으로 생성 최상위(Top Level) 위젯 : 부모 위젯이 없는 위젯 → 윈도 Qt의 모든 위젯이 최상위 위젯(윈도)이 될 수 있음 위젯은 자식 위젯을 가질 수..
C++에 대한 Qt의 확장 GUI 프로그램은 실행 시의 효율성과 유연성 양쪽 모두 필요 표준 C++ 객체 모델은 객체 패러다임에 대해서 매우 효율적으로 런타임 자원을 지원하지만 일부 영역에서 정적 측면에서 유연성 부족 강력한 시그널/슬롯 구조 상호 관계없는 객체 간의 통신 지원 객체 속성(Object Property) 질의가 가능한 디자인 가능 → metaObject()메소드와 QMetaObject 클래스 강력한 이벤트와 이벤트 필터 국제화를 위한 문자 번역 타이머(Timer) 이벤트 구동 GUI에서 많은 작업(Task)을 간결한 처리가 가능하도록 동일 간격으로 동작 계층적인 객체 트리(Object Tree) 객체 간의 상관관계 구성 QObject클래스 Qt에서의 대부분의 클래스는 표준 C++기능을 이용..
C++의 상속 객체지향 언어의 가장 중요한 특징 캡슐화(Encapsulation) 데이터(속성)와 데이터 처리 함수(메서드)를 하나로 묶는 것 외부에 캡슐화된 객체의 세부 사항이 숨겨지고, 캡슐화된 객체들은 재사용이 용이(정보 은닉) 정보은닉(Information Hiding) 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용 추상화(Abstraction) 객체의 속성 중 가장 중요한 것에만 중점을 두어 불필요한 부분을 생략(모델화) 상속(Inheritance) 이미 정의된 기반(부모) 클래스에서 정의된 속성(자료, 함수)를 파생(자식) 클래스에서 내려받아 그대로 사용 하위 클래스는 상위 클래스의 모든 속성과 연산(함수)을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속..

QPushButton 위젯의 사용 QPushButton은 사용자 입력을 받는 대표적인 위젯 main.cpp의 내용을 변경 QLabel 위젯을 QPushButton 위젯으로 변경 QPushButton 위젯은 리치 텍스트를 사용할 수 없다. #include #include int main(int argc, char *argv[]) { QApplication a(argc,argv); QPushButton *quit = new QPushButton("Quit", 0); quit->resize(75,35); quit->show(); return a.exec(); } 시그널과 슬롯의 연결 Qt는 시그널과 슬롯이라는 개념으로 이벤트를 처리 시그널 : 마우스로 버튼을 할 때 발생 어떤 일(이벤트)이 발생했다는 것을 알..

프로젝트 생성 Qt의 애플리케이션들은 프로젝트 파일(.pro)로 관리 빌드 시 qmake 유틸리티 이용 가능 터미널에서 vi를 이용해서 소스코드를 생성한 후 qmake를 이용해서 프로젝트 파일 생성 후 makefile 생성해서 빌드 # 프로젝트 생성 $ qmake - project # makefile 생성 $ qmake [- makefile] # 빌드 및 실행파일 생성 $ make Qt Creator의 프로젝트 생성 마법사를 이용해서 프로젝트 생성 Application > Qt Widgets Application Hello Qt! 프로그래밍 main.cpp의 내용을 변경 리치(Rich) 텍스트 QLabel 위젯에 HTML 태그를 이용해 서식 지정 C언어에서 한줄의 문장을 2줄로 나눠 쓸 때 마지막에 슬래..