赞
踩
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#FF0000"
- anchors.centerIn: parent
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#FF0000"
- anchors.centerIn: parent
-
- Image {
- id: image
- fillMode: Image.PreserveAspectFit
- source: "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2076212417,3005667226&fm=26&gp=0.jpg"
- }
- }
-
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- //构造12个Rectangle
- ScrollView{
- id: scrollView
- width: window.width
- height: window.height
- ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
- ScrollBar.vertical.policy: ScrollBar.AlwaysOn
- Flow{
- width: scrollView.width
- anchors.margins: 4
- spacing: 10
- Repeater{
- model: 12
- Rectangle{
- width: 200
- height: 200
- color: "blue"
- }
- }
- }
- }
-
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- //构造12个Rectangle
- ScrollView{
- id: scrollView
- width: window.width
- height: window.height
- ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
- ScrollBar.vertical.policy: ScrollBar.AlwaysOn
- Flow{
- width: scrollView.width
- anchors.margins: 4
- spacing: 10
- Repeater{
- model: 12
- Image{
- width: 200
- fillMode: Image.PreserveAspectFit
- source: "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3353166494,2700282750&fm=26&gp=0.jpg"
- }
- }
- }
- }
-
- }
MTextInput.qml:
- import QtQuick 2.0
-
- Rectangle{
- id: rect
-
- property int textInputWidth: 200
- property int textInputHeight: 30
- property string textInputColor: qsTr("#000000")
- property string background: qsTr("#CCCCCC")
- property string fontFamily: qsTr("微软雅黑")
- property int fontSize: 20
- property int borderWidth: 1
- property string borderColor: qsTr("#000000")
-
- property alias anchorBottom: rect.bottom
- property alias anchorLeft: rect.left
- property alias textInputText: textinput.text
-
-
- signal textchanged
-
- width: textInputWidth
- height: textInputHeight
- color: background
- border.width: borderWidth
- border.color: borderColor
- anchors.centerIn: parent
-
- TextInput{
- id: textinput
- width: textInputWidth
- height: textInputHeight
- color: textInputColor
- font.family: fontFamily
- font.pixelSize: fontSize
- verticalAlignment: TextInput.AlignVCenter
- onTextChanged: {
- rect.textchanged();
- }
- }
- }
main.qml:
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- MTextInput{
- id: mtextinput
- textInputColor: qsTr("#FF0000")
- onTextchanged: {
- text.text = mtextinput.textInputText;
- }
- }
-
- Rectangle{
- id: rect
- color: qsTr("#FF0000")
- width: mtextinput.textInputWidth
- height: mtextinput.textInputHeight
- anchors.top: mtextinput.anchorBottom
- anchors.left: mtextinput.anchorLeft
- anchors.topMargin: 10
- Text{
- id: text
- width: parent.width
- height: parent.height
- }
- }
-
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Rectangle{
- id: rect
- width: parent.width
- height: parent.height
- color: qsTr("yellow")
- anchors.centerIn: window
- focus: true
-
- Keys.onPressed: {
- console.log(event.key);
- }
- }
-
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: qsTr("yellow")
- anchors.centerIn: parent
- focus: true
-
- MouseArea{
- id: mouseArea
- width: parent.width
- height: parent.height
- hoverEnabled: true
- onEntered: {
- console.log("鼠标进入");
- rect.color = "blue";
- }
- onExited: {
- console.log("鼠标离开");
- rect.color = "yellow";
- }
- }
- }
-
-
-
- }
Ajax.js:
- // GET
- function get(url, success, failure)
- {
- let xhr = new XMLHttpRequest;
- xhr.open("GET", url);
- xhr.onreadystatechange = function() {
- handleResponse(xhr, success, failure);
- }
- xhr.send();
- }
-
- // POST
- function post(url, arg, success, failure)
- {
- let xhr = new XMLHttpRequest;
- xhr.open("POST", url);
- xhr.setRequestHeader("Content-Length", arg.length);
- xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;"); //用POST的时候一定要有这句
- xhr.onreadystatechange = function() {
- handleResponse(xhr, success, failure);
- }
- xhr.send(arg);
- }
-
- // 处理返回值
- function handleResponse(xhr, success, failure){
- if (xhr.readyState === XMLHttpRequest.DONE) {
- if (xhr.status === 200){
- if (success !== null && success !== undefined)
- {
- let result = xhr.responseText;
- try{
- success(result, JSON.parse(result));
- }catch(e){
- success(result, {});
- }
- }
- }
- else{
- if (failure !== null && failure !== undefined)
- failure(xhr.responseText, xhr.status);
- }
- }
- }
- Component.onCompleted: {
- Ajax.get("https://ljxwtl.cn/getPagingNewZongYis?pageIndex=1",
- function(result, data){
- console.log(JSON.stringify(data));
- listView.model = data;
- },function(){
-
- });
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- import QtQml.Models 2.14
- import "javascript/Ajax.js" as Ajax
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- ListView{
- id: listView
- width: parent.width - 40
- height: parent.height
- spacing: 10
- anchors.centerIn: parent
- delegate: Rectangle{
- width: parent.width
- height: 30
- color: "yellow"
- Text{
- width: parent.width
- height: 30
- text: modelData.title
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "微软雅黑"
- font.pixelSize: 20
- }
- }
- }
-
-
- Component.onCompleted: {
- Ajax.get("https://ljxwtl.cn/getPagingNewZongYis?pageIndex=1",
- function(result, data){
- console.log(JSON.stringify(data));
- listView.model = data;
- },function(){
-
- });
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- import QtQml.Models 2.14
- import "javascript/Ajax.js" as Ajax
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- ScrollView{
- id: scrollView
-
- width: parent.width
- height: parent.height
-
- GridView{
- id:gridView
-
- width: parent.width - 40
-
- cellWidth: 300
- cellHeight: 360
- delegate: Rectangle{
- width: 300
- height: 360
-
- border.width: 1
- border.color: "#000000"
-
-
- Text{
- id: text
- width: parent.width
- height: 50
- text: modelData.fromPageTitle
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "微软雅黑"
- font.pixelSize: 16
- wrapMode: TextEdit.WrapAnywhere
- }
-
- Image{
- width: parent.width
- height: parent.height - 50
- source: modelData.middleURL
- fillMode: Image.PreserveAspectFit
- anchors.top: text.bottom
- horizontalAlignment: Image.AlignHCenter
- }
-
- }
- }
- }
-
-
- Component.onCompleted: {
- Ajax.get("https://ljxwtl.cn/getAllMatchingImages?keyword=%E7%BE%8E%E5%A5%B3&pageIndex=1&pageSize=60",
- function(result, data){
- console.log(JSON.stringify(data));
- gridView.model = data;
- },function(){
-
- });
- }
- }
- ScrollBar.vertical.onPositionChanged: {
- let scrollBarHeight = ScrollBar.vertical.visualSize * 1000;
- let scrollBarPosition = ScrollBar.vertical.position * 1000;
-
- if (scrollBarPosition + scrollBarHeight > scrollView.height * 0.9){
- Ajax.get("https://ljxwtl.cn/getAllMatchingImages?keyword=%E7%BE%8E%E5%A5%B3&pageIndex=1&pageSize=60",
- function(result, data){
- console.log("JSON.stringify(data)");
- //gridView.model = data;
- },function(){
-
- });
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- import QtQml.Models 2.14
- import "javascript/Ajax.js" as Ajax
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- ScrollView{
- id: scrollView
-
- width: parent.width
- height: parent.height
-
- //Component.onCompleted: ScrollBar.vertical.position = 1.0
- ScrollBar.vertical.onPositionChanged: {
- let scrollBarHeight = ScrollBar.vertical.visualSize * 1000;
- let scrollBarPosition = ScrollBar.vertical.position * 1000;
-
- if (scrollBarPosition + scrollBarHeight > scrollView.height * 0.9){
- Ajax.get("https://ljxwtl.cn/getAllMatchingImages?keyword=%E7%BE%8E%E5%A5%B3&pageIndex=1&pageSize=60",
- function(result, data){
- console.log("JSON.stringify(data)");
- //gridView.model = data;
- },function(){
-
- });
- }
- }
-
-
- GridView{
- id:gridView
-
- width: parent.width - 40
-
- cellWidth: 300
- cellHeight: 360
- delegate: Rectangle{
- width: 300
- height: 360
-
- border.width: 1
- border.color: "#000000"
-
-
- Text{
- id: text
- width: parent.width
- height: 50
- text: modelData.fromPageTitle
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "微软雅黑"
- font.pixelSize: 16
- wrapMode: TextEdit.WrapAnywhere
- }
-
- Image{
- width: parent.width
- height: parent.height - 50
- source: modelData.middleURL
- fillMode: Image.PreserveAspectFit
- anchors.top: text.bottom
- horizontalAlignment: Image.AlignHCenter
- }
-
- }
- }
- }
-
-
- Component.onCompleted: {
- Ajax.get("https://ljxwtl.cn/getAllMatchingImages?keyword=%E7%BE%8E%E5%A5%B3&pageIndex=1&pageSize=60",
- function(result, data){
- console.log(JSON.stringify(data));
- gridView.model = data;
- },function(){
-
- });
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
- import QtQuick.Controls 2.14
- import QtQml.Models 2.14
- import "javascript/Ajax.js" as Ajax
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- function setTimeout(callback,timeout){
- let timer = Qt.createQmlObject("import QtQuick 2.14; Timer {}", window);
- timer.interval = timeout;
- timer.repeat = false;
- timer.triggered.connect(callback);
- timer.start();
- }
-
- function setInterval(callback,timeout){
- let timer = Qt.createQmlObject("import QtQuick 2.14; Timer {}", window);
- timer.interval = timeout;
- timer.repeat = true;
- timer.triggered.connect(callback);
- timer.start();
- }
-
-
- ListModel{
- id:listModel
- }
-
-
- ScrollView{
- id: scrollView
-
- width: parent.width
- height: parent.height
-
- property int pageIndex: 2
- property bool flag: true
-
- //Component.onCompleted: ScrollBar.vertical.position = 1.0
- ScrollBar.vertical.onPositionChanged: {
- let scrollBarSize = ScrollBar.vertical.size * 1000;
- let scrollBarHeight = ScrollBar.vertical.height;
- let scrollBarPosition = ScrollBar.vertical.position;
-
- // console.log(scrollBarHeight * scrollBarPosition + scrollBarSize);
- // console.log(scrollView.height);
- // console.log(flag);
- if (scrollBarHeight * scrollBarPosition + scrollBarSize > scrollView.height * 0.9 && flag){
- flag = false;
- pageIndex ++;
- Ajax.get("https://ljxwtl.cn/getAllMatchingImages?keyword=%E7%BE%8E%E5%A5%B3&pageIndex=" + pageIndex + "&pageSize=60",
- function(result, data){
- for (let i=0;i<data.length;i++){
- listModel.append(data[i]);
- }
-
- setTimeout(function(){
- flag = true;
- console.log("--------------------------------")
- },1000);
- },function(){
-
- });
- }
- }
-
-
- GridView{
- id:gridView
-
- width: parent.width - 40
-
- cellWidth: 300
- cellHeight: 360
-
- model: listModel
-
- delegate: Rectangle{
- width: 300
- height: 360
-
- border.width: 1
- border.color: "#000000"
-
-
- Text{
- id: text
- width: parent.width
- height: 50
- text: fromPageTitle
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.family: "微软雅黑"
- font.pixelSize: 16
- wrapMode: TextEdit.WrapAnywhere
- }
-
- Image{
- width: parent.width
- height: parent.height - 50
- source: middleURL
- fillMode: Image.PreserveAspectFit
- anchors.top: text.bottom
- horizontalAlignment: Image.AlignHCenter
- }
-
- }
- }
- }
-
-
- Component.onCompleted: {
- Ajax.get("https://ljxwtl.cn/getAllMatchingImages?keyword=%E7%BE%8E%E5%A5%B3&pageIndex=1&pageSize=60",
- function(result, data){
- console.log(JSON.stringify(data));
- for (let i=0;i<data.length;i++){
- listModel.append(data[i]);
- }
- },function(){
-
- });
- }
- }
- //设置rootContext的变量
- QQmlContext * context = engine.rootContext();
- context->setContextProperty("name","王天龙");
- #include <QGuiApplication>
- #include <QQmlApplicationEngine>
- #include <QQmlContext>
- int main(int argc, char *argv[])
- {
- QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
-
- QGuiApplication app(argc, argv);
-
- QQmlApplicationEngine engine;
-
- //设置rootContext的变量
- QQmlContext * context = engine.rootContext();
- context->setContextProperty("name","王天龙");
-
- const QUrl url(QStringLiteral("qrc:/main.qml"));
- QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
- &app, [url](QObject *obj, const QUrl &objUrl) {
- if (!obj && url == objUrl)
- QCoreApplication::exit(-1);
- }, Qt::QueuedConnection);
- engine.load(url);
-
- return app.exec();
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- anchors.centerIn: parent
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
- }
- }
Rect.qml:
- import QtQuick 2.14
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- anchors.centerIn: parent
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Loader{
- id: loader
- anchors.fill: parent
- source: Qt.resolvedUrl("Rect.qml")
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- Loader{
- id: loader
- anchors.fill: parent
- sourceComponent: component
- }
-
-
- Component{
- id: component
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- anchors.centerIn: parent
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
- }
- }
- }
Component.qml:
- import QtQuick 2.14
-
- Rectangle{
- id: rect
- width: 300
- height: 300
- color: "#000000"
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Loader{
- id: loader
- anchors.fill: parent
- sourceComponent: component
- }
-
- Component.onCompleted: {
- component = Qt.createComponent("Component.qml");
- console.log(component)
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Loader{
- id: loader
- anchors.fill: parent
- sourceComponent: component
- }
-
- Component.onCompleted: {
- component = Qt.createComponent("Component.qml");
- console.log(component)
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Loader{
- id: loader
- anchors.fill: parent
- sourceComponent: component
- }
-
- Component.onCompleted: {
- component = Qt.createQmlObject("import QtQuick 2.14;Component{Rectangle{color:'blue';width:200;height:200}}",window);
- console.log(component)
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
-
- NumberAnimation{
- id: numberAnimation
- target: rect
- property: "scale"
- from: 0
- to: 1
- duration: 1000
- running: true
- }
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
-
- PropertyAnimation {
- id: numberAnimation
- target: rect
- property: "scale"
- from: 0
- to: 1
- duration: 1000
- running: true
- }
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
-
- SequentialAnimation{
- running: true
- PropertyAnimation {
- id: numberAnimation1
- target: rect
- property: "scale"
- from: 0
- to: 1
- duration: 1000
- }
-
- PropertyAnimation {
- id: numberAnimation2
- target: rect
- property: "opacity"
- from: 0
- to: 1
- duration: 1000
- }
- }
- }
- }
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- property var component
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
-
- ParallelAnimation{
- running: true
- PropertyAnimation {
- id: numberAnimation1
- target: rect
- property: "scale"
- from: 0
- to: 1
- duration: 1000
- }
-
- PropertyAnimation {
- id: numberAnimation2
- target: rect
- property: "opacity"
- from: 0
- to: 1
- duration: 1000
- }
- }
- }
- }
flags: Qt.FramelessWindowHint
- import QtQuick 2.14
- import QtQuick.Window 2.14
-
- Window {
- id: window
- visible: true
- width: 640
- height: 480
- title: qsTr("Hello World")
-
- flags: Qt.FramelessWindowHint
-
- property var component
-
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "#000000"
-
- Text{
- id: text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- anchors.centerIn: parent
- text: name
- color: "#FFFFFF"
- font.pixelSize: 18
- font.family: "微软雅黑"
- }
-
- ParallelAnimation{
- running: true
- PropertyAnimation {
- id: numberAnimation1
- target: rect
- property: "scale"
- from: 0
- to: 1
- duration: 1000
- }
-
- PropertyAnimation {
- id: numberAnimation2
- target: rect
- property: "opacity"
- from: 0
- to: 1
- duration: 1000
- }
- }
- }
- }
- Rectangle{
- id: rect
- width: parent.width / 2
- height: parent.height / 2
- color: "blue"
- anchors.centerIn: parent
-
- PropertyAnimation{
- id: animation
- target: rect
- property: "color"
- from: "blue"
- to: "yellow"
- duration: 2000
- running: true
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。