定位和定位密码编码方式
Qt/C++
信号和插槽命名
信号和插槽都应该使用camelCase.一个信号应该使用某个动词的简单过去时代或过去参与,可能由一个短主题前置.相应的插槽应该是”上”这个词前置的信号而不是”插槽”这个词.以下是一些例子:
// correct
signal:
void shutdownScheduled();
void navigationRequested();
...
slot:
void onShutdownScheduled();
void onNavigationRequested();
// incorrect
signal:
void shutdown();
void navigateToHomeView();
...
slot:
void onShutdown();
void slotNavigateToHomeView();
密码
编程代码
The Qt 5.15.0 version of qmlformat has some issues dealing with comment sections and currently does not discriminate against max columns, so this formatting style will continue to be used in the guidelines. The following is a comprehensive sample component, adapted from https://doc.qt.io/qt-5/qml-codingconventions.html, that attempts to illustrate the ideally formatted component.
/*
* authored by/copyright …
*/
// Id always on the first line, and always present and called root
// for root component. Only present if referenced for children.
// Multi-line comments use '//'.
// There should always be a brief description of a component.
// Multi-line comments start with a capital letter and end with
// a period.
Rectangle {
id: root
// property declarations
property bool thumbnail: false
property alias image: photoImage.source
// signal declarations
signal clicked
// javascript functions
function doSomething(x) {
return x + photoImage.width
}
// object properties
color: "gray"
// try to group related properties together
x: 20
y: 20
height: 150
// large bindings
width: {
// Always space all operators, and add a single space
// before opening brackets.
if (photoImage.width > 200) {
photoImage.width
} else {
height
}
}
// child objects (contentItem, defaults, etc. first)
Rectangle {
id: border
anchors.centerIn: parent
color: "white"
Image {
id: photoImage
anchors.centerIn: parent
}
}
Text {
anchors.centerIn: photoImage
// Use the ellipsis character (…) for manual ellision within
// UI text and don't translate untranslatables.
text: qsTr("an emoji: %1 and a number: %2 …").arg("💡").arg(42)
}
// states
states: State {
name: "selected"
PropertyChanges {
target: border
color: "red"
}
}
// transitions
transitions: Transition {
from: ""
to: "selected"
ColorAnimation {
target: border
duration: 200
}
}
}
JS code formatting
Please configure the IDE to format using the clang-format file in src/app/js/
.
Ideally, any JS code should be located in that directory, and the clang-format file should be used to format the code.
JS files that serve as utilities or are not part of the main application should all be located in the src/app/js/
directory.
If for some reason a JS code file must be included elsewhere, please copy the clang-format file to that directory and use it to format the code.