Buenas galera.
Então, fiquei com uma duvida em relação à C++ e interface gráfica.
Por várias vezes lí que, para um programa em C++ ter uma interface, usá-se QT, mas por que usar QT ao invés de usar
a biblioteca <windows.h>??
Teria alguma relação de que só funcionaria em máquinas com Windows??
[]`s
Também.
Esse é um código para abrir uma janela escrito “Hello World” <windows.h>:
LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam)
{
if (msg==WM_PAINT)
{
PAINTSTRUCT ps;
const HDC hDC = BeginPaint(hWindow,&ps);
RECT rect;
GetClientRect(hWindow,&rect);
DrawText(hDC,TEXT("HELLO WORLD"),-1,&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hWindow,&ps);
return 0;
}
else if (msg==WM_DESTROY)
{
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWindow,msg,wParam,lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
const static TCHAR appName[] = TEXT("Hello world");
WNDCLASSEX myWin;
myWin.cbSize = sizeof(myWin);
myWin.style = CS_HREDRAW | CS_VREDRAW;
myWin.lpfnWndProc = myWndProc;
myWin.cbClsExtra = 0;
myWin.cbWndExtra = 0;
myWin.hInstance = hInstance;
myWin.hIcon = 0;
myWin.hIconSm = 0;
myWin.hCursor = 0;
myWin.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
myWin.lpszMenuName = 0;
myWin.lpszClassName = appName;
//Register
if (!RegisterClassEx(&myWin)) return 0;
const HWND hWindow = CreateWindow(
appName,
appName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
0,
0,
hInstance,
0);
ShowWindow(hWindow,iCmdShow);
UpdateWindow(hWindow);
{
MSG msg;
while(GetMessage(&msg,0,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
}
Esse o código necessário para abrir uma janela no QT:
[code]#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label(“Hello, world!”);
label.show();
return app.exec();
}[/code]
Qual dos dois você acha que parece mais fácil?
[quote=ViniGodoy]
Esse o código necessário para abrir uma janela no QT:
[code]#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label(“Hello, world!”);
label.show();
return app.exec();
}[/code]
Qual dos dois você acha que parece mais fácil?[/quote]
Sem contar que “qual dos programas pode rodar no Linux, Windows e MacOSX sem alterações no código fonte”? O Qt permite isso