qt quick 入门编程

注:本代码只是 qml 语言代码

鼠标键盘事件

import QtQuick 2.4
import QtQuick.Window 2.2
/*
  ggg
  */
Window {
    visible: true;
    width:10*100;
    Text {
        id:hello;
        //anchors.fill: parent;
        color: "red";
        text:"hello_world";

        font{
            pointSize: 20;//相当于font.pointSize:20;
            bold:true;

        }

        /*
          键盘事件
          Keys按键 必须附加在Item对象里
          */
        Keys.onLeftPressed: x-=10;//左移动
        Keys.onRightPressed: x+=10;
        Keys.onUpPressed: y-=10;
        Keys.onDownPressed: y+=10;
        focus:true;//拥有焦点的节点才会触发键盘事件

    }
    /*
    MouseArea{
        anchors.fill: parent;
        onClicked: {
            hello.text="hello_lhy";
        }
    }
    */
    MouseArea{//鼠标事件
        anchors.fill: parent;
        acceptedButtons: Qt.LeftButton|Qt.RightButton
        onClicked: {//onclick信号
            if(mouse.button==Qt.LeftButton){
                hello.text="Hello left";
            }
            else{
                hello.text="Hello right";
            }
        }
        onDoubleClicked: {
            if(mouse.button==Qt.LeftButton){
                hello.text="Hello leftDouble";
            }
            else{
                hello.text="Hello rightDouble";
            }
        }
    }

}

item节点举例

import QtQuick 2.4
import QtQuick.Window  2.2
import QtQuick.Controls 1.3

Window {
    width: 500
    height: 500;
    Text{
        x:100;
        y:200;
        text:"I am a text";
        color:"red";
        font.pixelSize: 24;
        rotation: 45;

    }
    Button{
        y:100;
        text:"A Button";
        onClicked: {
            console.debug("ddddd");
        }
    }
    Rectangle{//矩形
        y:300;
        width:100;
        height:30;
        border.width: 2;
        border.color: "blue";
        radius: 8;

        TextInput{//输入框,套在矩形中,可以调整编辑框效果
            id:phone;
            focus:true;
            width:100;
            height:20;
            x:10;
            y:10;

        }
    }
    Image{
        x:100;
        width:100;
        height:100;
        source: "file:///C:/a.png";
        fillMode:Image.PreserveAspectFit;

    }

}

信号与槽

import QtQuick 2.4
import QtQuick.Window  2.2
import QtQuick.Controls 1.3
Window{
    width: 100
    height: 62;
    id:win;
    Text{
        id:txt;
        text:"solt";
    }
    onWidthChanged: widthChanged();//信号处理器,使用方法
    onHeightChanged: {//信号处理器,使用表达式
         txt.y=(win.height-txt.height)/2;
    }

    Button{
        id:btn;
        x:0;
        y:0;
        text:"Quit";
    }

    function widthChanged(){//js自定义方法
        txt.x=(win.width-txt.width)/2;
    }

    function quitFunc()//退出
    {
        Qt.quit();
    }

    /*
      信号与槽
      */
    /*
    Component.onCompleted: {
        btn.clicked.connect(quitFunc);
    }
    */
    Connections{
        target:btn;//对象id
        onClicked:quitFunc();//信号处理器
    }
}

定位 anchors

import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.3

Rectangle {
    width: 480;
    height: 320;
    visible:true;
    Rectangle{
        anchors.left: parent.left;
        anchors.top: parent.top;
        anchors.leftMargin: 8;//左边距
        anchors.topMargin: 6;//上边距
        width:60;
        height:40;
        color:"red";
    }
    Rectangle{
        id:centerRect;//id
        anchors.centerIn: parent;
        width:60;
        height:40;
        color:"yellow";
    }

    Rectangle{
        anchors.top: centerRect.bottom;//相对于centerRect
        anchors.horizontalCenter: centerRect.horizontalCenter;//相对于centerRect
        anchors.horizontalCenterOffset: 10;//相对于中线右移
        width:60;
        height:40;
        color:"blue";
        border.width: 1;
        border.color: "black";
    }
    Rectangle{
        anchors.bottom: parent.bottom;
        anchors.horizontalCenter: parent.horizontalCenter;//相对于父
        anchors.bottomMargin: 12;

        width:60;
        height:40;
        color:"green";
        border.width: 1;
        border.color: "green";
    }
}
时间: 2024-10-09 19:57:57

qt quick 入门编程的相关文章

Qt Charts入门指南

简述 Qt Charts 的横空出世标识着 QWT.QCustomPlot -- 时代的终结,是时候向他们做一个简单的告别了.Qt Charts - 强大并极具吸引力,从现在开始,让我们顺势拥抱灿烂的明天 . 简述 安装配置 基本示例 入门指南 基本用法 QChartView QChart QGraphicsScene QChart 安装配置 Qt5.7 中已经集成了 Qt Charts 模块,关于 Qt 的安装配置,请参考: Qt环境搭建(Visual Studio) Qt环境搭建(Qt Cr

Qt快速入门学习笔记(基础篇)

本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&tid=193.参考书为基于该系列教程<Qt Creator快速入门>和<Qt及Qt Quick开发实战精解> 1.关联Qt库.如果是分别安装的Qt Creator和Qt库,而不是安装集成Qt Creator和Qt库的SDK,则需要手动关联Qt库.打开工具→选项菜单,然后选择&qu

javascript-JavaScript for Qt Quick(QML)

问题描述 JavaScript for Qt Quick(QML) JavaScript for Qt Quick(QML)可以用在什么地方 解决方案 http://baike.baidu.com/link?url=5ozD64y1gI_c99ruft1eNazuP_UmsQRJ4S3tcFghac8VseZHVPyLd17HfaC_YhQj1C82aFJl8WhKk0Kz08JjO_ 解决方案二: Javascript本身可以做为一种程序内嵌的脚本语言,比如用于QT的程序中,你也许不希望把功能

小白在学习qt刚入门的问题执行了qmake xxx.pro

问题描述 小白在学习qt刚入门的问题执行了qmake xxx.pro 没有像qt书上说的将gotocelldialog.ui生成ui_gotocelldialog.h,然后debuy和release下也没有exe,o文件生成 为什么好不懂啊? 解决方案 qmake -project 生成.pro文件 qmake 生成makefile文件 make 编译输出 解决方案二: http://bbs.csdn.net/topics/390027117

opengl-OpenGL入门编程求解答 错误 4 error LNK2001: 无法解析的外部符号 _NtProcessStartup

问题描述 OpenGL入门编程求解答 错误 4 error LNK2001: 无法解析的外部符号 _NtProcessStartup 代码如下,从计算机图形学第三版完整抄下来的程序. 错误就是 4 error LNK2001: 无法解析的外部符号 _NtProcessStartup 求大神 #include #include #include void init(void) { glClearColor(1.0,1.0,1.0,0.0); //窗口背景颜色 glMatrixMode(GL_PRO

Qt Quick Hello World hacking

/********************************************************************************************* * Qt Quick Hello World hacking * 说明: * 本代码是Qt生成Quick应用程序的时候自动生成Hello World程序: * * 2015-5-17 深圳 晴 南山平山村 曾剑锋 ************************************************

Storm实时计算:流操作入门编程实践

Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比较简单,实际编程开发起来相对容易.下面,简单介绍编程实践过程中需要理解的Storm中的几个概念: Topology Storm中Topology的概念类似于Hadoop中的MapReduce Job,是一个用来编排.容纳一组计算逻辑组件(Spout.Bolt)的对象(Hadoop MapReduce中一个Job包含一组Map Task.Reduce Task),这一组计算组件可以按照DAG图的方式编排起来(通过选择Stre

spring入门编程问题集锦

1.如何学习Spring? 你可以通过下列途径学习spring: (1) spring下载包中doc目录下的MVC-step-by-step和sample目录下的例子都是比较好的spring开发的例子. (2) AppFuse集成了目前最流行的几个开源轻量级框架或者工具Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,Canoo's WebTest,Struts Menu,Display Tag Library,OS

qt excel mysql-qt编程中excel文件如何导入mysql中

问题描述 qt编程中excel文件如何导入mysql中 求助 如何实现qt编程的excel文件导入mysql 具体点 万分感谢