문제

C ++ 및 QT를 사용하여 구축 된 오픈 소스 프로젝트에서 다른 프로그래머 그룹과 함께 일하고 있습니다.

이제 우리는 모든 코드에서 표준으로 사용하려면 위젯 (및 기타 변수)에 대한 명명 규칙이 필요하여 코드가 가독성을 높이고 프로그래머 간의 더 나은 조정을 얻을 수 있습니다.

어떤 충고?

편집 : 새로운 수업의 이름 지정에 대해 이야기하지 않고

대신 QT 위젯의 이름 지정 인스턴스에 대해 이야기하고 있습니다. 사용자 이름에 대한 텍스트 편집이 있다고 가정 해 봅시다.

그리고 그 경우, 나는 어떻게 파생물을 선택해야합니까?

도움이 되었습니까?

해결책

이 라인을 따라 생각하는 한, 나는이 Qtquarterly 기사를 시작부터 피시에서 읽는 것으로 시작합니다.

QT 스타일 C ++ API 설계

즉, 우리가하는 한 가지는 인스턴스의 "사용"을 첫 번째 부분으로, 클래스의 마지막 단어를 마지막 부분으로 넣는 것입니다.

따라서 "사용자 이름"Qtextedit입니다

QTextEdit * userNameEdit = new QTextEdit(this);

qlistview 및 qtreeview와 같은 모호성이 있으면 마지막으로 변정되지 않은 섹션을 선택하십시오.

QListView * userListView;

약어가 자신이 좋아하는 방식 (예 : Qlabel의 경우 LBL ")을 파악할 수 있지만 일반적으로 전체 단어가 효과가 있었고 읽기 쉬웠습니다.

반면에, 우리는 이것에 대해 너무 엄격하지 않으며 클래스 이름이없는 인스턴스 변수의 의도를 지정하는 것이 더 중요 할 수 있습니다. 앞으로 클래스를 변경하려면 이름을 변경하려고합니다. 좋은 리팩토링 도구가 없으면 고통입니다.

아마도 당신이 가장 많이 사용하는 일반적인 위젯을 알아 내고, 가장 일반적인 슈퍼 클래스에 대한 명명 컨벤션을 선택하고 다른 모든 것을 놓아 두십시오.

컨벤션을 준수하는 것의 예 :

  • 레이아웃 = "레이아웃"으로 끝나는 모든 클래스 및 Qlayout 상속
  • 버튼 = "버튼"으로 끝나는 모든 클래스 및 QABSTRANTBUTTON을 상속받습니다.

QABSTRATT클래스 이름 수업은 그 목록에 무엇이 있어야하는지 생각하기에 좋은 곳입니다.

다른 팁

QT는 타사 개발자에게 공개되므로 코딩 스타일 및 API 설계 원칙에 관한 여러 문서를 제공했습니다.

이 문서는 정말 흥미 롭습니다. 다음은 몇 가지 링크입니다.

위키 : QT 코딩 스타일

위키 : API 디자인 원칙

그리고 Jasmin Blanchette 의이 문서 (PDF)는 읽을 가치가 있습니다. API 디자인의 작은 매뉴얼

QT가 사용하는 것과 동일한 명명 규칙을 사용합니다. 자신을 쉽게 만들 수 있습니다.

그들의 이름 지정 협약은 Java와 유사합니다.

전체 이름은 빠르게 읽고 입력하기 위해 빠르게 귀찮게되므로 우리는 일반적으로 약어를 사용하고 있습니다.

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

(드리프트를 얻습니다). 예, 모호성이 있지만 일반적으로 상황에서 해결됩니다.

정확하게 말하면, "QT 위젯의 이름 지정 인스턴스"에 관한 질문이지만, 답은 위젯 인스턴스에 대한 참조를 보유하는 변수 이름 지정에 관한 것입니다.

QT 위젯은 qobject에서 파생 된 getter objectName ()가있는 이름 속성이 있습니다. QT는 프로그래머가 그렇지 않은 경우 속성에 가치를 부여합니까? "자동 생성"또는 "기본"값이라고 부릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top