Integrating QML and C++ provides a variety of opportunities, including the ability to:
1. Separate the user interface code from the application logic code, by implementing the former with QML and JavaScript within QML documents, and the latter with C++
2. Use and invoke some C++ functionality from QML (for example, to invoke your application logic, use a data model implemented in C++, or call some functions in a third-party C++ library)
3. Access functionality in the Qt QML or Qt Quick C++ API (for example, to dynamically generate images using QQuickImageProvider)
4. Implement your own QML object types from C++ — whether for use within your own specific application, or for distribution to others
source: http://doc.qt.io/qt-5/qtqml-cppintegration-overview.html
change qmake version
change qmake version
$ export QTDIR=/qtdir/Qt/5.7/gcc_64
$ export PATH=$QTDIR/bin:$PATH
$ export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
/qtdir = installed qt path
qmake --version
[VMware workstation] solution - disable intall vmware tools (ubuntu)
[VMware workstation] solution - disable intall vmware tools (ubuntu)
1. open terminal$sudo apt-get install open-vm-tools-desktop
2. restart vmware
C Language - extern ?
Extern
- The extern keyword declares a variable or function and specifies that it has external linkage.
- The extern keyword declares a variable or function and specifies that it has external linkage.
C++ Shift operator(KO)
Shift operator- cout, cin 쓸때 앞이나 뒤에 붙이는 연산자
- 표준 라이브러리에 std라는 namespace에 cout이나 cin에 관련된 클래스(istream, ostream)
- C++에서는 쉬프트 연산자도 연산자 오버로딩이 가능
Shift operator overloading
-----------------------------
int main()
{
VALUE val(2,3);
std::cout << val;
return 0;
}
- 표준 라이브러리에 std라는 namespace에 cout이나 cin에 관련된 클래스(istream, ostream)
- C++에서는 쉬프트 연산자도 연산자 오버로딩이 가능
Shift operator overloading
-----------------------------
int main()
{
VALUE val(2,3);
std::cout << val;
return 0;
}
1. VALUE class show x and y value.
2. create val Object. after, std::cout print val .
Error :
cout : - possible normal data type printing
- impossible object of user type
-표준 std의 ostream 클래스에서도 쉬프트 연산에 대한 오버로딩이 정의 되어 있지 않음
따라서, 표준 라이브러리로 객체를 출력하는 일 불가능
-> Solution
overloading of member fucntion
cout is cout.operator
cout.operator<< (val)
val 객체 인자값을 받을 수 있도록 cout 객체에는 operator<< 연산자를 오버로딩 시키면 가능
class VALUE{
private:
int iX;
int iY;
public:
VALUE(int x=0, int y=0):iX(x), iY(y){}
friend ostream& operator<<(ostream& os, const VALUE& val);
};
ostream& operator<<(ostream& os, const VALUE& val)
{
os<<"["<<val.iX<<", "<<val.iY<<"]"<<endl;
return os;
}
int main(void)
{
VALUE val(2, 3);
std::cout<<val;
return 0;
}
member func overloading : CHANGE std::cout<<val; to operator(std::cout, VALUE);
NO logical problem.
How to use #ifdef to C/C++
example
if debug mode
#define _DEBUG "DEBUG"
int testfunc(int x, int y)
{
#ifdef _DEBUG
printf("x=%d, Y=%d", x,y); // if x=1, y =2
#endif
return (x * Y) ;
}
if debug mode
#define _DEBUG "DEBUG"
print x=1, Y=2
after return
if release mode,
not print
return
C/C++ Data type byte range
data type
data type byte
unsigned long DWORD
int BOOL;
unsigned char BYTE;
unsigned short WORD;
unsigned int UINT;
char 1 byte -128 ~ 127
unsigned char 1 byte 0 ~ 255
int8 1 byte -128 ~ 127
int16 2 byte -32,768 to 32,767
unsigned int 2 byte -32,768 to 32,767
(signed) short (int) 2 byte -32,768 to 32,767
unsigned short (int) 2 byte 0 ~ 65,535
int32 4 byte -2,147,483,648 ~ 2,147,483,647
(signed) int 4 byte -2,147,483,648 ~ 2,147,483,647
unsigned int 4 byte 0 ~ 4,294,967,295
(signed) long (int) 4 byte -2,147,483,648 ~ 2,147,483,647
unsigned long (ing) 4 byte -2,147,483,648 ~ 2,147,483,647
int64 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float 4 byte 3.4E +/- 38 (7 digits)
double 8 byte 1.7E +/- 308 (15 digits)
long double 8 byte 1.2E +/- 4932 (19 digits)
Subscribe to:
Posts (Atom)
알뜰폰 삼성페이 교통카드 '한도 초과' 오류(등록 불가 오류) 해결방법
sk7mobile 알뜰폰 삼성페이 교통카드 등록 시, 한도 초과 문제 해결방법 skt usim 해킹 사건으로 인해 sk7mobile 알뜰폰을 사용하는 저도 usim을 바꾸고 나니 삼성페이 교통카드가 등록이 안되더라구요... 삼성페이 교통카드 기능 은...
-
Two Related Issues ERROR: OE-core's config sanity checker detected a potential misconfiguration. 1. Issue : Yocto bitbake error ...
-
Error: linux Could not determine which "make" command to run. Check the "make" step in the build configuration. ...
-
How to create a script to prevent gpt from Hallucination (feat. ChatGpt) This is what I asked the GPT and answered the question. English Ve...