'QT/Tutorials'에 해당되는 글 7건

  1. 2015.04.16 5. QFile
  2. 2015.04.15 MainWindow and ImageViewer using Creator - Part A
  3. 2015.04.14 4. Main Window and Action
  4. 2015.04.14 3. Q_OBJECT Macro
  5. 2015.04.14 2. Signals and Slots
  6. 2015.04.14 1. HelloWorld
  7. 2015.04.14 QT 5.4.1 튜토리얼

5. QFile

QT/Tutorials 2015. 4. 16. 13:46
QFile은 파일을 읽고 쓰는 인터페이스를 제공해준다. 

바이너리 파일이나 텍스트 파일을 읽고쓰게 해주며 QTextStream 이나 QDataStream과 사용되기도한다.


파일이름을 생성자에 넣어서 생성하기도하고 setFileName()을 써서 언제든지 파일이름을 지정해줄수도 있다.


'/' 이기호로 파일을 분류한다 .\<- 요거 아님


exists()로 파일이 인스턴스안에 존재하는지 체크 할수 있고 remove()로 지울수 있음


QtextStream은 8-bit 데이터를 16-bit Unicode QString으로 변환하는 역활을 한다.


QTextstream에 파일을 쓰기 위해선 <<() operator를 사용하면 된다.

요렇게 실행하면 "QFile Tutorial" 이라고 뜬단다. 아직안해봄




'QT > Tutorials' 카테고리의 다른 글

MainWindow and ImageViewer using Creator - Part A  (0) 2015.04.15
4. Main Window and Action  (0) 2015.04.14
3. Q_OBJECT Macro  (0) 2015.04.14
2. Signals and Slots  (0) 2015.04.14
1. HelloWorld  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,

이번 장에선 이미지 뷰어를 만들어보겠음

'QT > Tutorials' 카테고리의 다른 글

5. QFile  (0) 2015.04.16
4. Main Window and Action  (0) 2015.04.14
3. Q_OBJECT Macro  (0) 2015.04.14
2. Signals and Slots  (0) 2015.04.14
1. HelloWorld  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,

이번엔 메인윈도우 클래스의 메뉴와툴바의 액션을 어떻게 설정하는지에 대해서 알아볼꺼임


Qt_QMainWindowArea_MenuBar_ToolBar_DockWindow_CentralWidget_StatusBar.png

음 위그림은 왜 대략적인 구조도인듯


QtGuiApplication.pngProjectManagement.png


아무튼 GUI 어플리케이션 프로젝트를 하나 만듬

ActionWindow.png

ui 부분에 가서 Type here에 file이라고 치고 

다음 하위 메뉴에 New Window 라고 치고 엔터!를 하면 아주 간단한 메뉴가 만들어짐

그런면 밑에 Action editor에 붉은색으로 메뉴가 하나 더 뜰것임 그것이 바로 New Window를 클릭했을때 어떻게 행동할 것인가를 처리하는 부분인듯 ?

DragAndDrop.png

이다음엔 Action editor에 있는 아이템을 끌어다가 붉은색 표시된 곳으로 드래그엔 드롭을 하면 메뉴바가 하나더 추가됨 

이렇게 하면 매뉴바의 2가지 버튼이 한가지액션을 공유하게 됨

RightMouseOnActionEditor.png

이제 액션 에디터에서 그림처리 Go to slot을 해서 이 메뉴들이 선택되었을때 어떤 액션을 취할 것인가를 지정해 주면됨GoToSlotTriggered.png

triggered()를 선택


그렇게 되면 위와 같은 소스코드가 자동적으로 생성되게 됨 이제 메뉴를 누르면 위의 함수가 실행되는것임

RunActionA.png 

그리고 실행해보면 이런창이 띄지만 별 기능은 없음

하지만 메뉴를 누를떄마다 

MainWindow::on_actionNew_Window_triggered()요 함수가 실행되고 있는거임



여기까지가 이제 메뉴바에 버튼을 추가하는 부분까지 이고 아래부터는 버튼을 눌렀을때 새로운 창을 띄우는 걸 해보겠음

가장 단순한 윈도우 창을 다이얼로그라고 부르는데 메인 다이얼로그가 새로운 다이얼 로그를 생성할때 메인 다이얼로그와 서브 다이얼로그가 동시에 제어가 되냐 안되냐에 따라서

Modal , Modaless로 나뉘게 됨. 모달은 메인이 제어가 안되고  modaless는 동시에 제어가 가능함.

고럼 모달부터 시작해보겠음. 

MyDialog.png 

일단 프로젝트에다가 오른 클릭해서 project->Add New->Qt->Qt Designer Form Class->Dialog without Buttons

FilesInTheProject.png 

추가하면 이렇게 다이얼로그 클래스가 추가가됨


그리고 mainwindow.cpp에 다음과같이 추가하면  새창띔 


Modaless 다이얼로그를 만들기 위해서 기존의 코드는 주석처리해주고


아래와 같이 코드를 바꿔보면 코드를 실행해서 버튼을 누르자마자 창이 꺼질거임 


이게 왜그러냐면 트리거 함수가 끝나면서 다이얼로그 메모리가 해제 되버리기때문임

고래서 요렇게

요렇게 하면 하면 Modaless 다이얼로그 생성됨

-끝-




'QT > Tutorials' 카테고리의 다른 글

5. QFile  (0) 2015.04.16
MainWindow and ImageViewer using Creator - Part A  (0) 2015.04.15
3. Q_OBJECT Macro  (0) 2015.04.14
2. Signals and Slots  (0) 2015.04.14
1. HelloWorld  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,

3. Q_OBJECT Macro

QT/Tutorials 2015. 4. 14. 13:50

Q_OBJECT 매크로에 대해서 알아보자




큐티 코딩을 하다보면 위와같은 큐 오브잭트 메크로가 클래스 정의 젤 윗부분에 보일 것이다.


Meta object system이나 시그널 실롯 등을 사용할때 꼭 명시를 해줘야 하는 부분이라고 설명이 되어있다


(Meta object system에 대해선 본문엔 the signals and slots mechanism, the run-time type information, and the dynamic property system 요렇게 나와있는데 뒤에 2개는 아직 QT를 다공부해보진않아서 모르겠다.)


실제로 매크로를 지우면 해당 시그널 슬롯이 동작을 안한다.


한마디로 큐티를 컴파일 하는 Meta object compiler(MOC)에게 이 클래스는 큐티기반의 클래스라는 것을 알려주는 역활을 하는것이다.


 큐티 기능을 쓰던 안쓰던 그냥 써놓으면 해가 되진않는듯하다 그냥 다 써놓으면 되는듯?


-끝- 


출처 : http://www.bogotobogo.com/Qt/Qt5_Q_OBJECT_Macro_Meta_Object.php 

'QT > Tutorials' 카테고리의 다른 글

MainWindow and ImageViewer using Creator - Part A  (0) 2015.04.15
4. Main Window and Action  (0) 2015.04.14
2. Signals and Slots  (0) 2015.04.14
1. HelloWorld  (0) 2015.04.14
QT 5.4.1 튜토리얼  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,

2. Signals and Slots

QT/Tutorials 2015. 4. 14. 11:30

이번 튜토리얼 에서는 윈도우 mfc에서의 메세지 핸들러 역활을 하는 signal slot 메커니즘에 대해서 설명함


QT widgets application으로 프로젝트를 하나만들고 forms 라는 폴더에 mainwindow.ui를 더블킬릭해보셈


CreatorDesign.png

그럼 요런 창이 뜸 MFC에 그것과 똑같은 역활을 함


Slider_ProgressBar.png

Horizontal Slider, Progress Bar 드래그 해서 붙여 넣고

GuiSlot.png

화살표에 보이는 거 누르고 

ConfigureConnection.png

위와 같이 두개 연결 시켜주고 실행 시키면

RunA.png

요렇게 슬라이더바랑 프로그래스바랑 같이 움직이는 프로그램 만들어짐


연결 해놓은거 떼버리고 


메인윈도우.cpp에 위와같이 코딩을 해넣어도 같은 효과로 작용함


이게 바로 QT의 signal and slot 시스템임


슬라이더바에서 움직였다는 시그널을 보내면 프로그래스바에서 그걸 캐치해서 바꿔줌 


-끝- 



이아니고 


http://www.bogotobogo.com/Qt/Qt5_SignalsSlotsGui.php에 밑에 Signal and slot 에 대한 설명이 영어로 되어있는데 읽어보면


좋음 


대략 내용은 기존에 프로그램에서는 callback 이란 것을 이용해서 이벤트 처리를 했다고 하는데


이 방법들은 type-safe ? 하지 않다고 함 그리고 call back 은 너무 강하게 연결성을 가지고 있다나 어쨋다나 아무튼 


시그널슬롯 짱짱맨이라는 말임




'QT > Tutorials' 카테고리의 다른 글

MainWindow and ImageViewer using Creator - Part A  (0) 2015.04.15
4. Main Window and Action  (0) 2015.04.14
3. Q_OBJECT Macro  (0) 2015.04.14
1. HelloWorld  (0) 2015.04.14
QT 5.4.1 튜토리얼  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,

1. HelloWorld

QT/Tutorials 2015. 4. 14. 11:18

뉴 프로젝트에서 콘솔 프로젝트 생성

NewProject.png 
위 그림은 5.3 버전이라 5.4랑 메뉴가 몇개 다를 거임 


당황하지 말고 Qt console application 선택하셈


ConsoleLocation.png 


이름정해주고 피니쉬 하면


#include <QCoreApplication>

 int main(int argc, char *argv[]) { 

QCoreApplication a(argc, argv); 

return a.exec();

 } 


요런 코드가 나올거심 Qcoreapplication은  콘솔 어플리케이션(non-GUI)의 이벤트 루프를 제공해준다고 함 

GUI 어플리케이션에서는 Qapplication 사용한다고함


Qcoreapplication 객체에서 exec()함수를 실행하면 이벤트 루프가 실행이 됨. 그럼 윈도우가 메세지를 날리면 받을 준비를 하는거임


ctl+r을 누르던가 녹색 삼각형 누르면 실행됨


하지만 아무것도 실행 되지는 않고 멈춰 있음 당연한거임 


프로그램을 실행을 실행하면 Qt 어플은 다음과 같은 순서로 컴파일됨

1. qmake 란게 먼저 .pro파일을 분석하고 makefile이란걸만듬

2. 만들어진 메이크파일을 프로그램이 빌드를 한다는군 



요것은 헬로우 월드를 띄우기 위한 코드 

방법이 어찌됫던  띄워진 모습

-끝-




'QT > Tutorials' 카테고리의 다른 글

MainWindow and ImageViewer using Creator - Part A  (0) 2015.04.15
4. Main Window and Action  (0) 2015.04.14
3. Q_OBJECT Macro  (0) 2015.04.14
2. Signals and Slots  (0) 2015.04.14
QT 5.4.1 튜토리얼  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,

QT 5.4.1 튜토리얼

QT/Tutorials 2015. 4. 14. 11:06

을 시작 해볼려고 생각중



qt 홈피에서 커뮤니티 버전으로 위에 껄 깔았어요 


그리고 http://www.bogotobogo.com/Qt/Qt5_TutorialHelloWorld.php 

여기 K Hong 님 자료를 이용해볼 생각임 

큐티에 대한 설명은 따로 하지않겠음 큐티를 찾는 분들은

왜 큐티가 필요한지 다들 알고 왔으리라 생각됨 

홈피에다 글쓰는 것도 첨이기도하고 컴공 출신이 아니여서 전문적이진 못할듯 많은 어려움이 있을지도 흠

바빠지면 못할수도 있음 하는데까지 최선을 다해봄!




'QT > Tutorials' 카테고리의 다른 글

MainWindow and ImageViewer using Creator - Part A  (0) 2015.04.15
4. Main Window and Action  (0) 2015.04.14
3. Q_OBJECT Macro  (0) 2015.04.14
2. Signals and Slots  (0) 2015.04.14
1. HelloWorld  (0) 2015.04.14
Posted by 모래반지빵냐빵냐
,