我正與一羣其他程序員合作開發使用C++和Qt構建的開源項目。Qt小部件的命名約定
現在,我們需要一個小部件(以及其他變量)的命名約定,將其用作所有代碼中的標準,以便代碼具有更好的可讀性,並且我們可以更好地協調程序員。
有什麼建議嗎?
編輯:我不是在談論命名新的類,
,而不是我說的命名Qt控件的情況下,讓我們說我有一個用戶名文本編輯,我應該命名爲txtEdtUsrNm?
在這種情況下,我該如何選擇派生?
我正與一羣其他程序員合作開發使用C++和Qt構建的開源項目。Qt小部件的命名約定
現在,我們需要一個小部件(以及其他變量)的命名約定,將其用作所有代碼中的標準,以便代碼具有更好的可讀性,並且我們可以更好地協調程序員。
有什麼建議嗎?
編輯:我不是在談論命名新的類,
,而不是我說的命名Qt控件的情況下,讓我們說我有一個用戶名文本編輯,我應該命名爲txtEdtUsrNm?
在這種情況下,我該如何選擇派生?
只要你正在思考這些問題,我首先會從頭到尾閱讀這篇QtQuarterly文章。
這就是說,一件事,我們要做的就是把該實例的「使用」的第一部分和類作爲最後部分的最後一個完整的單詞。
所以,你的 「用戶名」 的QTextEdit是
QTextEdit * userNameEdit = new QTextEdit(this);
如果有歧義,如而QListView和QTreeView則,挑選最後unabiguous部分。
QListView * userListView;
你可以找出縮寫你怎麼樣(如「的Lbl」爲QLabel),但通常,整個單詞已經工作,並一直易於閱讀。
另一方面,我們對此並不太嚴格,可能更重要的是在沒有類名的情況下命名實例變量的意圖,因爲如果將來想要更改類,則會得到改變這個名字,如果沒有好的重構工具,這是一種痛苦。
也許找出你最常用的小部件,然後爲最一般的超類選擇一個命名約定,讓所有其他部分都去。的事情,堅持公約
列表示例:
的QAbstract 類名類想想應該是在該名單有什麼好地方。
優秀信息,謝謝! – Lawand 2009-01-03 20:27:17
我只會使用與Qt使用相同的命名約定。讓自己輕鬆一下。
它們的命名約定與java類似。
的全名迅速成爲麻煩閱讀和類型,所以我們通常使用的縮寫:
QLabel * fooLB;
QPushButton * fooPB;
QTextEdit * fooTE;
QSpinBox * fooSB;
(你得到的漂移)。是的,有些含糊不清,但通常是從上下文中解決。
我發現fooPB的方式比fooButton更不易讀,可抓取和可寫。寫作不是程序員大部分時間的工作,而是閱讀和思考。 – 2011-01-10 12:03:14
由於Qt向第三方開發者開放,他們提供了一些關於編碼風格和API設計原則的文檔。
這些文件真的很有趣。這裏有幾個環節:
而這個文件從茉莉布蘭切特,這是值得一讀(PDF):Little Manual of API Design
準確地說,問題是關於「命名Qt Widgets的實例「,但答案是關於命名變量的變量,它們持有對小部件實例的引用。
Qt Widgets派生自QObject,它具有getter objectName()的name屬性。如果程序員不這樣做,Qt會給這個屬性一個值嗎?將其稱爲「自動生成」或「默認」值。
減少此問題的範圍。我會回答它,但它會佔用頁面和頁面。你是指級別?功能級別? UI生成的小部件? – mxcl 2009-01-01 19:59:57
此外,你作爲命名方案從單詞中去除內部元音的例子是可怕的。用這種風格閱讀代碼會讓我發瘋。 – mxcl 2009-01-01 20:02:28