zoukankan      html  css  js  c++  java
  • 我的QML

    1、键盘加Text

    import QtQuick 2.7
    import QtGraphicalEffects 1.0
    Rectangle{
        300;
        height:200;
        color:"#C0C0C0";
        focus:true;
        Keys.enabled:true;
        Keys.onEscapePressed:Qt.quit();
        Keys.onBackPressed:Qt.quit();
        Keys.onPressed:{
            switch(event.key){
            case Qt.Key_0:
            case Qt.Key_1:
            case Qt.Key_2:
            case Qt.Key_3:
            case Qt.Key_4:
            case Qt.Key_5:
            case Qt.Key_6:
            case Qt.Key_7:
            case Qt.Key_8:
            case Qt.Key_9:
                event.accepted=true;
                keyView.text = event.key-Qt.Key_0;
                break;
            }
        }
        Text{
            id:keyView;
            font.bold:true;
            font.pixelSize:24;
            text:"Waiting";
            anchors.centerIn:parent;
            color:"#FF0000";
        }
        Glow{//光影
            anchors.fill:keyView;
            radius:8;
            samples:17;
            color:"white";
            source:keyView;
        }
    }

     2、按钮+信号

    import QtQuick 2.7
    import QtQuick.Controls 2.2
    Rectangle{
        300;
        height:200;
        color:"gray";
        Button{
            text:"Quit";
            anchors.centerIn:parent;
            onClicked:Qt.quit();
        }
    }

     3、TabBar

    import QtQuick 2.7
    import QtQuick.Controls 2.2
    Rectangle{
        300;
        height:200;
        color:"gray";
        TabBar {
          id:bar
          parent.width
          TabButton {
            text:qsTr("Home")
          }
          TabButton {
            text:qsTr("Discover")
          }
          TabButton {
            text:qsTr("Activity")
          }
       }
    }

     4、按钮+Compnent+风格

    import QtQuick 2.2
    import QtQuick.Controls 1.1
    import QtQuick.Controls.Styles 1.4
    Rectangle{
        300;
        height:200;
        Component{
        id:btnStyle;
        ButtonStyle{
            background:Rectangle{
                implicitWidth:70;
                implicitHeight:25;
                color:"#DDDDDD";
                border.control.pressed?2:1;
                border.color:(control.hovered||control.pressed)?"green":"#888888";
                }
            }
        }
        Button{
        
            style:btnStyle;
        }
    }

     5、矩形+颜色渐变+旋转

    转自:https://blog.csdn.net/qq21497936/article/details/78526200
    import QtQuick 2.2 import QtQuick.Controls 1.1 Item { Rectangle { x: 0; 80; height: 80 color: "lightsteelblue" } Rectangle { x: 100; 80; height: 80 gradient: Gradient { GradientStop { position: 0.0; color: "red" } GradientStop { position: 0.5; color: "white" } GradientStop { position: 1.0; color: "blue" } } } Rectangle { x: 200; 80; height: 80 rotation: 90 // 旋转90度 gradient: Gradient { // 只能从上到下,若需要横向则需要旋转90° GradientStop { position: 0.0; color: "red" } GradientStop { position: 0.5; color: "white" } GradientStop { position: 1.0; color: "blue" } } } }

     6、通过设置半径来画圆

    转自:https://blog.csdn.net/qq21497936/article/details/78526200

    import QtQuick 2.2

    import QtQuick.Controls 1.1
    Item {
        Rectangle {
            id: rect1;
             200;
            height: 200;
            radius: width/2;
            gradient: Gradient {
                GradientStop { position: 0.0; color: "white"; }
                GradientStop { position: 0.5; color: "blue"; }
                GradientStop { position: 1.0; color: "white"; }
            }
            border. 5;
            border.color: "black";
        }
    }

     7、简单的图片浏览器

    import QtQuick 2.2
    import QtQuick.Window 2.1
    import QtQuick.Controls 1.2
    import QtQuick.Controls.Styles 1.2
    import QtQuick.Dialogs 1.1
    Window {
        visible: true;
         640;
        height: 480;
        title: "图片浏览器";
        minimumWidth: 480;
        minimumHeight: 380;
    
        BusyIndicator{
            id: busy;
            running: false;
            anchors.centerIn: parent;
            z:2;
        }
        Text {
            id: stateLabel;
            visible: false;
            anchors.centerIn: parent;
            z:3;
        }
        Image {
            id: iamgeViewr;
            asynchronous: true;
            cache:false;
            anchors.fill: parent;
            fillMode: Image.PreserveAspectFit;
            onStatusChanged: {
                if(iamgeViewr.status===Image.Loading){
                    busy.running = true;
                    stateLabel.visible = false;
                }
                else if(iamgeViewr.status===Image.Ready){
                    busy.running=false;
                }
                else if(iamgeViewr.status===Image.Error)
                {
                    busy.running = false;
                    stateLabel.visible = true;
                    stateLabel.text = "ERROR";
                }
            }
        }
        Text {
            id: imagePath;
            anchors.left: openFileBtn.right;
            anchors.leftMargin: 8;
            anchors.verticalCenter: openFileBtn.verticalCenter;
            font.pixelSize: 18;
        }
        FileDialog{
            id:fileDialog;
            title: "open a picture";
            nameFilters: ["Image Files(*.jpg *.png *.gif)"];
            onAccepted: {
                iamgeViewr.source = fileDialog.fileUrl;
                var imageFile = String(fileDialog.fileUrl);
                imagePath.text = imageFile.slice(8);
            }
        }
    
        Button{
            id:openFileBtn;
            text:"OPEN";
            anchors.left: parent.left;
            anchors.leftMargin: 8;
            anchors.bottom: parent.bottom;
            anchors.bottomMargin: 8;
            style:ButtonStyle{
                background: Rectangle{
                    implicitWidth: 70;
                    implicitHeight: 25;
                    color:"#FFFFFF";
                    border. control.pressed?2:1;
                    border.color: (control.hovered || control.pressed)?"green":"#888888";
                }
            }
            onClicked: fileDialog.open();
            z:4;
        }
    }

     8、颜色动画ColorAnimation

    import QtQuick 2.2
    
    Rectangle{
        id: rootItem
         360
        height: 240
        color: "#EEEEEE"
    
        Rectangle{
            id: rect
             60
            height: 60
            anchors.centerIn: parent
            radius: 30
            color: "red"
    
            MouseArea{
                id: mouseArea
                anchors.fill: parent
                onClicked: ColorAnimation{
                    target: rect
                    property: "color"
                    to: "green"
                    duration: 1500
                }
            }
        }
    }

     9、MouseArea拖动

    import QtQuick 2.6
    import QtQuick.Window 2.2
    import QtQuick.Controls 1.4
    Window {
        visible: true
         640
        height: 480
        title: qsTr("Hello World")
        Rectangle {
             id: container
              640; height: 480
    
             Rectangle {
                 id: rect
                  50; height: 50
                 color: "red"
                 opacity: (600.0 - rect.x) / 600
    
                 MouseArea {
                     anchors.fill: rect
                     drag.target: rect
                     drag.axis:Drag.XAndYAxis
                     drag.minimumX: 0
                     drag.maximumX: container.width - rect.width
                     drag.minimumY: 0
                     drag.maximumY: container.width - rect.width
                 }
             }
         }
    }

     ps:试过给Window或者ApplicationWindow添加MouseArea来移动整个窗口,但是失败了。

    分析:MouseArea只能移动有父类的Item

    10、Keys

    import QtQuick 2.6
    import QtQuick.Window 2.2
    import QtQuick.Controls 1.4
    
    Window {
        id:main;
        visible: true
         360
        height: 360
        Rectangle{
             360;
            height: 360;
            anchors.fill: parent;
            focus:true;//获取焦点
            Keys.enabled: true;//使能按键
            Keys.forwardTo: text;//将按键事件传递到text对象
            Rectangle {
                id: text;
                 10;
                height: 10;
                color: "red";
                Keys.enabled: true;
                Keys.onPressed: {
                    switch(event.key){
                    case Qt.Key_Left:
                        x-=10;
                        break;
                    case Qt.Key_Right:
                        x+=10;
                        break;
                    case Qt.Key_Down:
                        y+=10;
                        break;
                    case Qt.Key_Up:
                        y-=10;
                        break;
                    default:
                        break;
                    }
                    event.accepted = true;//在这里把按键事件吃了,不再向下传递
                }
            }
        }
    }

  • 相关阅读:
    找出优先要作的工作
    我要作技术研发了
    确定配色方案
    今天公司搬家
    要作界面原型了
    使用自已的命名空间
    进行审核了
    那里有皮肤软件工开发包的源码???
    发葡萄
    作业务规则挺难
  • 原文地址:https://www.cnblogs.com/judes/p/9372700.html
Copyright © 2011-2022 走看看