Quais são os cantos perigosos do Qt? [fechadas]


10

Não há nada perfeito sob o sol. O Qt não é exceção e possui limitações: não podemos usar pixmaps em um thread que não seja a GUI, não podemos usar o QImage com formato de imagem de 16 bits por canal, etc.

Quais situações o forçaram a estragar o design por causa das limitações do Qt?
Quais são as peculiaridades mais odiadas?
Quais decisões de design se deve evitar ao usar o Qt em seus projetos?


Você pode dizer o Qt? Se você o expandir para "Q Toolkit", poderá adicionar um "the" na frente dele, mas é correto / boa prática dizer o Qt? Apenas curioso.
Anto 30/05

@Anto: suponho, theé obrigado a cornersaqui, não Qt, mas é apenas a minha sensação intuitiva, desde que eu sou russo :)
videiras

Uma possível curva perigosa é que o projeto pode estar com problemas financeiros. A Nokia assinou recentemente um acordo com a Microsoft (para usar o Win7 em seus telefones) que coloca o futuro da Qt em terreno instável.
precisa

Estou muito interessado em saber esta resposta, porque eu sou um noob para C ++ programação visual: D
Shaheer

@Vines: Que tal "Quais são os cantos perigosos do QT?"?
Chris

Respostas:


12

Ironicamente, eu diria que o poder de Qt também é uma das desvantagens. Existem tantas construções e extensões poderosas que o código que você escreve no Qt se torna facilmente entrincheirado da "maneira do Qt". Tentar extrair a funcionalidade para outro idioma não significa apenas reescrever, você precisa conhecer muita tecnologia específica do Qt.

A amplitude do Qt significa que contratar programadores significa comprometer-se com alguém com experiência no Qt ou treinar para esse conhecimento. Colocar um contratado atualizado e atualizado é mais difícil que o C ++ básico.

Quando o Qt mudou de 3.x para 4.x, nossa equipe precisou de quase 9 meses para fazer a porta, período durante o qual pouca funcionalidade foi adicionada. Você espera compensar esse grande custo de atualização, aumentando a eficiência do desenvolvimento pelo resto do tempo. (Observe, eu omiti as vantagens do Qt, das quais também existem muitas)


2
A porta Qt3 para Qt4 era difícil para a maioria das pessoas que conheço. Esse QML e coisas semelhantes que foram introduzidas nas versões mais recentes me preocupam, pois pode significar mais uma vez uma porta complicada chegando.
Vitor Py

10

O Qt não usa a biblioteca C ++ padrão , mas possui seu próprio QString, QVector, QMap, ...

Isso significa que você precisa tomar uma decisão importante no design: quais partes do aplicativo usarão QString e quais partes usarão std :: string?

O uso de std :: string em algumas partes e QString em outras partes significa que você precisará converter entre QString e std :: string nos limites.

Para evitar essa sobrecarga, pode-se optar por usar o QString em todo o seu aplicativo. Mas isso torna muito mais difícil o uso de bibliotecas de terceiros que não são baseadas no Qt, por exemplo, boost.

(Observe que o mesmo se aplica a std :: map vs QMap, std :: vector vs QVector e assim por diante)

Decidir quais peças usam os tipos de Qt e quais peças usam o STL é uma decisão de projeto importante, com grandes implicações. E apenas porque o Qt se recusa a usar a biblioteca C ++ padrão.

IMHO, essa decisão poderia ser de qualquer maneira, dependendo do projeto. Portanto, não posso responder à sua pergunta, qual evitar.


11
Eu concordo, mas gostaria de dizer que o QString (etc etc) também é um dos pontos fortes, pois é muito bom trabalhar com eles.
Johan

11
Além disso, não é tão difícil usar uma biblioteca que não usa QString. Existe um método simples para converter um QString em um std :: string e vice-versa. Não é muito.

@ Nelson Nelson: Sim, hoje em dia existem funções de conversão para QString; muito útil e conveniente! Mas, especialmente para o QVector e o QMap, haverá uma sobrecarga na conversão (e soluções simples não funcionarão, por exemplo, no QVector <QString>); Essa sobrecarga deve ser considerada durante o projeto para evitar problemas de desempenho na linha.
Sjoerd

3

Isso não responde diretamente à pergunta, mas acho que vale a pena mencionar: talvez o aspecto mais 'perigoso' do Qt seja que a Nokia tenha se deitado com a MSoft ...


2
Mas eles abandonaram o Qt para fazer isso.
Martin Beckett

11
Por uma questão de integridade - A parte comercial do Qt agora pertence à Digia, enquanto o Qt mudou para um sistema de "governança aberta", onde outros podem contribuir facilmente. Há também a base do KDE Free Qt, que protege o Qt de código fechado.
Vishesh Handa

2

Recentemente, descobri que um QChar, apesar do nome, na verdade não corresponde a um caractere, mas a uma unidade de código UTF-16. Portanto, quando você deseja varrer um caractere de texto Unicode arbitrário por caractere, é necessário adicionar algoritmos para lidar com substitutos altos e baixos, combinando caracteres e similares.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.