Pergunta

Eu estou trabalhando com um grupo de outros programadores em um projeto open source construído usando C ++ e Qt.

Agora, precisamos de uma convenção de nomenclatura para widgets (e outras variáveis ??geralmente) para usá-lo como um padrão em todo o nosso código para que, o código fica melhor legibilidade e temos uma melhor coordenação entre os programadores.

Qualquer conselho?

EDIT: Am não falar sobre a nomeação de novas classes,

vez que eu estou falando sobre a nomeação de casos de Qt Widgets, digamos que eu tenho uma edição de texto para o nome do usuário, que eu deveria nomeá-lo txtEdtUsrNm?

E, nesse caso, como é que eu vou escolher derivações?

Foi útil?

Solução

Enquanto você está pensando ao longo destas linhas, eu ia começar por ler este artigo QtQuarterly a partir do início ao fim.

Designing Qt-Style C ++ APIs

Dito isto, uma coisa que fazemos é colocar a "utilização" da instância como a primeira parte e a última palavra cheia de classe como a última parte.

Assim, seu "nome do usuário" QTextEdit é

QTextEdit * userNameEdit = new QTextEdit(this);

Se houver ambigüidade, como QListView e QTreeView, escolher a última seção unabiguous.

QListView * userListView;

Você pode descobrir abreviaturas como você gosta (como "Lbl" para QLabel), mas geralmente, a palavra inteira tem trabalhado e tem sido fácil de ler.

Por outro lado, não são muito rigorosos quanto a isso e que poderia ser mais importante para nomear a intenção da variável de instância sem o nome da classe, porque se, no futuro, você quer mudar a classe, você começa a alterar o nome que, na ausência de boas ferramentas de refatoração, é uma dor.

Talvez descobrir os widgets gerais que você mais usa, e escolher uma convenção de nomenclatura para a maioria dos super-classes gerais e deixe tudo mais ir.

Exemplo lista de coisas que aderem à convenção:

  • layout = Todas as classes que terminam em "Layout" e herdar QLayout
  • botão = Todas as classes que terminam em "Button" e herdar QAbstractButton

O QAbstract ClassName aulas são um bom lugar para pensar sobre o que deve ser nessa lista.

Outras dicas

Desde Qt é aberto para desenvolvedores de terceiros, eles disponibilizados vários documentação sobre o estilo de codificação e os princípios de design API.

Estes documentos são realmente interessantes. Aqui estão alguns links:

Wiki: Qt estilo de codificação

Wiki: API Princípios de Design

E neste documento (PDF) a partir de Jasmin Blanchette, que vale a pena ler: pequeno manual de design API

Gostaria apenas de usar a mesma convenção de nomenclatura que Qt usa. Tornar mais fácil para si mesmo.

A convenção de nomenclatura é semelhante ao Java.

Os nomes completos rapidamente tornar-se incômodo para ler e escrever, por isso estamos geralmente usando uma abreviação:

QLabel * fooLB;
QPushButton * fooPB;
QTextEdit * fooTE;
QSpinBox * fooSB;

(você começa a deriva). Sim, existem algumas ambiguidades, mas eles são geralmente resolvidos a partir do contexto.

Para ser mais preciso, a pergunta é sobre "casos de nomeação de Qt Widgets", mas as respostas são sobre a nomeação de variáveis ??guardando referências a casos de widgets.

Qt Widgets derivam de QObject que tem uma propriedade de nome com getter objectName (). Does Qt dar o valor de uma propriedade se o programador não? Ligue ou valor que ele "auto gerado" "default".

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