Pergunta

Atualmente mantemos um conjunto de aplicativos MFC que são razoavelmente bem projetados, no entanto, a interface do usuário está começando a parecer cansada e grande parte do código precisa de um pouco de refatoração para resolver alguns problemas de duplicação e/ou desempenho.Fazemos uso de alguns controles personalizados que lidam com todos os seus próprios desenhos (todos escritos usando MFC).

Recentemente tenho feito mais pesquisas sobre o Qt e os benefícios que ele oferece (multiplataforma e suporta o que você pode chamar de uma estrutura de aparência mais "profissional" para desenvolvimento de UI).

Minha pergunta é - qual seria a melhor abordagem para talvez mudar para o framework Qt?O Qt funciona bem com o MFC?Seria melhor começar a portar alguns de nossos controles personalizados para o Qt e integrar gradualmente mais e mais em nossos aplicativos MFC existentes?(Isso é possível?).

Qualquer conselho ou experiência anterior é apreciado.

Foi útil?

Solução

Na minha empresa, atualmente usamos Qt e estamos muito felizes com isso.

Pessoalmente, nunca precisei migrar um aplicativo MFC para usar a estrutura Qt, mas aqui está algo que pode ser de algum interesse para você:

Estrutura de migração Qt/MFC

Estrutura de migração Qt/MFC

Faz parte do Qt-Solutions, então isso significa que você terá que comprar uma licença do Qt junto com uma licença do Qt-Solutions.(editar: Não mais)

Eu espero que isso ajude !

Outras dicas

(Isso realmente não responde às suas perguntas específicas, mas ...) Eu não usei pessoalmente o QT, mas não é gratuito para o desenvolvimento comercial do Windows.

Você já olhou wxWindows o que é grátis?Belo artigo aqui.Apenas como um aparte, se você quiser uma única base de código para todas as plataformas, talvez seja necessário migrar do MFC - tenho certeza (alguém corrigirá se estiver errado) que o MFC tem como alvo apenas o Windows.

Uma outra opção seria olhar para o Atualização do pacote de recursos para MFC no SP1 do VS2008 - inclui acesso a novos controles, incluindo os controles da faixa de opções estilo Office.

É um problema complicado e suspeito que a resposta depende de quanto tempo você tem.Você obterá um resultado muito melhor se portar seus controles personalizados para o Qt - se usar as classes QStyle para fazer o desenho real, você terá um código compatível com o tema pronto para uso.

Em geral, meu conselho seria aguentar a bala e percorrer todo o caminho de uma vez.Claro, pode demorar mais, mas a alternativa é passar um tempo tentando depurar código que não funciona. bastante jogar bola e acabar escrevendo mais código para lidar com pequenas incompatibilidades entre os dois sistemas (já estive lá, fiz isso).

Então, para resumir, meu conselho é iniciar um branch e extrair todo o seu código MFC antigo e substituí-lo pelo Qt.Você obterá independência de plataforma (quase) de graça e, embora demore um pouco, acabará com um produto muito melhor no final.

Uma última palavra de advertência:certifique-se de dedicar um tempo para entender a "maneira Qt de fazer as coisas" - em alguns casos, pode ser bem diferente da abordagem MFC - a última coisa que você deseja fazer é acabar com o código Qt no estilo MFC.

Já liderei uma equipe fazendo esse tipo de coisa antes (não de MFC para QT, mas os princípios devem funcionar).

Primeiro documentamos os diálogos e quais eram suas entradas, controles e saídas.Além disso, criamos vários casos de teste especialmente para qualquer lógica inteligente dentro da GUI.

Às vezes, tínhamos que refatorar alguma lógica de negócios para fornecer uma interface limpa às GUIs, mas é assim que deveria ter sido feito em primeiro lugar.

Agora tínhamos uma lista de GUIs, entradas, saídas, testes e uma interface que a GUI encapsulada deveria corresponder.

Começamos, projeto por projeto, a criar GUIs equivalentes às antigas.Depois de fazer isso, poderíamos colocar a GUI onde estava a antiga, reconstruí-la e testá-la.No começo tropeçamos muito, mas logo resolvemos os erros comuns e os corrigimos.Navegamos (eu acho) por 612 diálogos, embora houvesse uma equipe de cerca de uma dúzia de nós trabalhando nisso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top