| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:09:57
|
matheuslmota
Virtual Machine Man
Membro desde: 09/03/2010 15:14:56
Mensagens: 664
Offline
|
Bom dia a todos. Estava estudando C++ por esses dias e li que o C++ padrão não possui suporte à interface gráfica. Usa-se alguma biblioteca que interaja com o sistema de janelas do Sistema Operacional. Mas o sistema de janelas do sistema operacional é feito em que linguagem? Alguém poderia me explicar como isso tudo funciona? Eu não entendi direito. Tipo, temos o framework QT, que além de MVC e outras coisas ele também tem a parte gráfica. Mas isso são somente chamadas ao sistema de janelas?
|
Toda vez que você alimenta um troll uma foca morre no Polo Norte. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:14:21
|
otaviojava
GUJ Master
![[Avatar]](/images/avatar/d419e81be1290357badc49826f0a8a72.jpg)
Membro desde: 14/12/2010 10:09:09
Mensagens: 1192
Localização: Salvador,Bahia
Offline
|
No linux você tem dois famosos frameworks.
QT framework usado pelo pessoal do kde
GTK framework usado pelo pessoal do gnome
|
twitter- https://twitter.com/otaviojava
java -http://home.java.net/blogs/otaviojava
blog - http://otaviosantana.blogspot.com/
javabahia - http://javabahia.blogspot.com/
linguagil - http://javabahia.blogspot.com/
Desenvolva aplicações com Cassandra de uma maneira mais fácil com o EasyCassanra: https://github.com/otaviojava/Easy-Cassandra
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:16:29
|
matheuslmota
Virtual Machine Man
Membro desde: 09/03/2010 15:14:56
Mensagens: 664
Offline
|
Pois é, mas a minha dúvida é com relação à como isso funciona. Eu Desenvolvo uma aplicação com o QT. A parte gráfica o QT chama do sistema operacional????????? Eu não estou entendendo.
|
Toda vez que você alimenta um troll uma foca morre no Polo Norte. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:32:28
|
otaviojava
GUJ Master
![[Avatar]](/images/avatar/d419e81be1290357badc49826f0a8a72.jpg)
Membro desde: 14/12/2010 10:09:09
Mensagens: 1192
Localização: Salvador,Bahia
Offline
|
matheuslmota wrote:Pois é, mas a minha dúvida é com relação à como isso funciona. Eu Desenvolvo uma aplicação com o QT. A parte gráfica o QT chama do sistema operacional????????? Eu não estou entendendo.
Você precisa ter o qt instalado no Sistema operacional.
No caso da interface KDE isso já vem nativo e nos outros so vc vai precisar instalar as libs.
Além de compilar para cada arquitetura e cada SO.
|
twitter- https://twitter.com/otaviojava
java -http://home.java.net/blogs/otaviojava
blog - http://otaviosantana.blogspot.com/
javabahia - http://javabahia.blogspot.com/
linguagil - http://javabahia.blogspot.com/
Desenvolva aplicações com Cassandra de uma maneira mais fácil com o EasyCassanra: https://github.com/otaviojava/Easy-Cassandra
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:33:40
|
matheuslmota
Virtual Machine Man
Membro desde: 09/03/2010 15:14:56
Mensagens: 664
Offline
|
Mas no final das contas, essa interface gráfica é implementada em que linguagem? A minha dúvida mesmo é: o QT chama o sistema de janelas do windows (ou do linux, ou de outro S.O.). Mas como tal sistema é implementando? É em que linguagem? E você saberia informar o porquê de o C++ não ter suporte nativo à inteferace gráfica?
This message was edited 1 time. Last update was at 28/06/2011 07:41:07
|
Toda vez que você alimenta um troll uma foca morre no Polo Norte. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:51:59
|
quikkoo
JavaEvangelist
![[Avatar]](/images/avatar/f30402d250ee0d24b57be8e69299e1f9.png)
Membro desde: 30/10/2006 21:10:14
Mensagens: 406
Localização: minas
Offline
|
a linguagem usada no qt é c++, o gtk usa-se o c, mas exite um 'wrapper' para c++ chamado gtkmm
matheuslmota wrote:li que o C++ padrão não possui suporte à interface gráfica
aqui há uma confusão, talvez oq vc leu, ou oq quizeram informar, é q em c e em c++ ñ são distribuidas bibliotecas nativas para widgets, mas isso é uma caracteristica da linguagem, oq ñ impede ninguem de escrever uma, até mesmo as funções básicas de entrada e saída estão em bibliotecas
flw,.t+
|
the_book->is_on(the_table); |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 07:55:40
|
matheuslmota
Virtual Machine Man
Membro desde: 09/03/2010 15:14:56
Mensagens: 664
Offline
|
quikkoo wrote:a linguagem usada no qt é c++, o gtk usa-se o c, mas exite um 'wrapper' para c++ chamado gtkmm
matheuslmota wrote:li que o C++ padrão não possui suporte à interface gráfica
aqui há uma confusão, talvez oq vc leu, ou oq quizeram informar, é q em c e em c++ ñ são distribuidas bibliotecas nativas para widgets, mas isso é uma caracteristica da linguagem, oq ñ impede ninguem de escrever uma, até mesmo as funções básicas de entrada e saída estão em bibliotecas
flw,.t+
Agora você chegou onde eu queria. Então quer dizer que eu posso escrever uma biblioteca em C++ para interface gráfica? O que queriam dizer é que apenas o C++ não tem uma biblioteca padrão para tal, isso? Grato a todos pela atenção.
|
Toda vez que você alimenta um troll uma foca morre no Polo Norte. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 08:36:06
|
RafaelViana
GUJ Master
Membro desde: 23/03/2008 18:56:02
Mensagens: 1257
Localização: Venâncio Aires/RS
Offline
|
Matheus,
Para um trabalho da faculdade desenvolvi uma aplicação simples usando QT. Se lhe interessar posso mandar o código para o seu email.
Mande seu email por MP.
|
Rafael Rodrigues Viana
Estudando Java e Flex
Blog: http://www.cauirs.com.br/rafael/
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 08:47:13
|
DanielGimenes
Thread.start()
![[Avatar]](/images/avatar/90c4dea8341bf29fab84b8600fca1cf6.png)
Membro desde: 28/01/2010 13:40:04
Mensagens: 48
Localização: São Paulo
Offline
|
Matheus,
Sim! As classes do QT utilizam a API do sistema operacional que já possui widgets, ao menos no windows. Você pode perfeitamente criar os seus widgets, porém para colocá-los na tela, você precisa interagir com a API do sistema operacional. Então, mesmo em casos como o Firefox, que renderiza a página desenhando os componentes e tal, ele tem um widget que é o componente onde a página é mostrada, que é registrada no Windows.
E isso é bom, afinal, você centraliza o código de desenho de janelas e componentes em um só lugar e permite o gerenciamento de tal para todos os aplicativos de uma só forma. Exemplo: se todos os programas usarem a API do SO para desenhar os componentes, é possível que se aplique temas que afetam todos os programas ao mesmo tempo.
Agora falando de C++: na espec da linguagem não existe uma api para criação de interfaces gráficas (GUI). Porém existem as famosas e mais utilizadas, que atualmente são o QT e o GTK+ (ambas multiplataforma). Antigamente se usava também o MFC e o da Borland (não lembro o nome), para Windows. Que eu saiba, o QT no Windows utiliza a API do SO para criar os componentes, exceto aqueles que não existem no SO, para aproveitar a parte de temas, etc. No Linux (KDE), como o QT é a base para todos os aplicativos, este renderiza os componentes, sendo que inclusive é mais integrado ao SO. É possível ver isso ao instalar o Firefox (GTK+) no KDE e tentar salvar um arquivo. Você verá que o diálogo que for aberto não terá o tema dos outros aplicativos, nem o diretório padrão e os atalhos. Isso porque no KDE é o QT que trata isso. O mesmo ocorre no Gnome com o GTK+.
Tipo, temos o framework QT, que além de MVC e outras coisas ele também tem a parte gráfica. Mas isso são somente chamadas ao sistema de janelas?
Não são simples chamadas ao sistema, pois ele expõe a parte de signals e slots, que é uma forma de IPC bem bacana. Além disso, existem diversos widgets que o SO não possui, e esses são desenhados pelo QT (e registrados no Windows, no caso, como Janelas).
Agora... por que vc perguntou isso? Apenas curiosidade? :]
[[]]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2011 08:47:28
|
matheuslmota
Virtual Machine Man
Membro desde: 09/03/2010 15:14:56
Mensagens: 664
Offline
|
RafaelViana wrote:Matheus,
Para um trabalho da faculdade desenvolvi uma aplicação simples usando QT. Se lhe interessar posso mandar o código para o seu email.
Mande seu email por MP.
Mandei pra ti agora um MP.
|
Toda vez que você alimenta um troll uma foca morre no Polo Norte. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2011 08:53:24
|
matheuslmota
Virtual Machine Man
Membro desde: 09/03/2010 15:14:56
Mensagens: 664
Offline
|
DanielGimenes wrote:Matheus,
Sim! As classes do QT utilizam a API do sistema operacional que já possui widgets, ao menos no windows. Você pode perfeitamente criar os seus widgets, porém para colocá-los na tela, você precisa interagir com a API do sistema operacional. Então, mesmo em casos como o Firefox, que renderiza a página desenhando os componentes e tal, ele tem um widget que é o componente onde a página é mostrada, que é registrada no Windows.
E isso é bom, afinal, você centraliza o código de desenho de janelas e componentes em um só lugar e permite o gerenciamento de tal para todos os aplicativos de uma só forma. Exemplo: se todos os programas usarem a API do SO para desenhar os componentes, é possível que se aplique temas que afetam todos os programas ao mesmo tempo.
Agora falando de C++: na espec da linguagem não existe uma api para criação de interfaces gráficas (GUI). Porém existem as famosas e mais utilizadas, que atualmente são o QT e o GTK+ (ambas multiplataforma). Antigamente se usava também o MFC e o da Borland (não lembro o nome), para Windows. Que eu saiba, o QT no Windows utiliza a API do SO para criar os componentes, exceto aqueles que não existem no SO, para aproveitar a parte de temas, etc. No Linux (KDE), como o QT é a base para todos os aplicativos, este renderiza os componentes, sendo que inclusive é mais integrado ao SO. É possível ver isso ao instalar o Firefox (GTK+) no KDE e tentar salvar um arquivo. Você verá que o diálogo que for aberto não terá o tema dos outros aplicativos, nem o diretório padrão e os atalhos. Isso porque no KDE é o QT que trata isso. O mesmo ocorre no Gnome com o GTK+.
Tipo, temos o framework QT, que além de MVC e outras coisas ele também tem a parte gráfica. Mas isso são somente chamadas ao sistema de janelas?
Não são simples chamadas ao sistema, pois ele expõe a parte de signals e slots, que é uma forma de IPC bem bacana. Além disso, existem diversos widgets que o SO não possui, e esses são desenhados pelo QT (e registrados no Windows, no caso, como Janelas).
Agora... por que vc perguntou isso? Apenas curiosidade? :]
[[]]'s
Obrigaod pela respostoa. Eu pesquisei sobre isso através de outras fontes e só completando o que você disse. A aplicação usa um determinado framwork para desenvolver uma interface gráfica. Vamos pegar o QT como exemplo. Quando eu coloco uma janela na minha aplicação, o QT chama essa janela do sistema operacional. O sistema operacional por sua vez tem uma série de componentes implementados, como dialogs, buttons, showmessages etc. Tais componentes são escritos em C usando API's de desenho. Esses componentes são disponibiliados pelo windows sob a forma de DLL's (a implementação não é mostrada, mas segue esse esse esquema que eu acabei de falar).
Eu perguntei apenas por curiosidade mesmo.
|
Toda vez que você alimenta um troll uma foca morre no Polo Norte. |
|
|
 |
|
|