登陆界面(一)(转)

原文转自 https://blog.csdn.net/jdh99/article/details/24711531

环境:

主机:WIN7

开发环境:Qt5.2

说明:

用QML设计一个应用的登陆界面

效果图:

源代码:

main.qml

import QtQuick 2.0

Rectangle
{
    id: login_gui

    width: 320; height: 480

    SystemPalette { id: activePalette }

    //背景图片
    Image
    {
        id: background
        anchors { top: parent.top; bottom: parent.bottom }
        anchors.fill: parent
        source: "pics/pic1.png"
        fillMode: Image.PreserveAspectCrop
    }

    //顶烂
    Item
    {
        id: top_bar
        width: login_gui.width; height: login_gui.height * 0.05
        anchors.top: login_gui.top

        Text
        {
            id: title
            anchors { top: parent.top; horizontalCenter: parent.horizontalCenter }
            text: "登陆"
            font.bold: true
            font.pointSize: login_gui.height * 0.05 * 0.7
            color: "dark red"
        }
    }

    //空白栏
    Item
    {
        id: space1
        width: login_gui.width; height: login_gui.height * 0.1
        anchors.top: top_bar.bottom
    }

    //登陆框
    Rectangle
    {
        id: rect1
        width: login_gui.width * 0.8; height: login_gui.height * 0.3
        anchors { top: space1.bottom; horizontalCenter: parent.horizontalCenter }
        border.color: "#707070"
        color: "transparent"

        LineInput
        {
            width: rect1.width * 0.8; height: rect1.height * 0.2
            font_size:height * 0.7
            anchors {horizontalCenter: rect1.horizontalCenter; top: rect1.top; topMargin: 8}
            hint: "请输入用户号"
        }

        LineInput
        {
            width: rect1.width * 0.8; height: rect1.height * 0.2
            font_size:height * 0.7
            anchors {horizontalCenter: rect1.horizontalCenter; bottom: btn_login.top;  bottomMargin: rect1.height * 0.1}
            hint: "请输入密码"
        }

        Button
        {
            id: btn_login
            width: rect1.width * 0.35; height: rect1.height * 0.2
            anchors { left: rect1.left; leftMargin: 28; bottom: rect1.bottom; bottomMargin: 8 }
            text: "登陆"
            //onClicked: SameGame.startNewGame()
        }

        Button
        {
            id: btn_quit
            width: rect1.width * 0.35; height: rect1.height * 0.2
            anchors { right: rect1.right; rightMargin: 28; bottom: rect1.bottom; bottomMargin: 8 }
            text: "退出"
            //onClicked: SameGame.startNewGame()
        }
    }
}

Button.qml

import QtQuick 2.0

Rectangle {
    id: container

    property string text: "Button"

    signal clicked

    width: buttonLabel.width + 20; height: buttonLabel.height + 5
    border { width: 1; color: Qt.darker(activePalette.button) }
    antialiasing: true
    radius: 8

    // color the button with a gradient
    gradient: Gradient {
        GradientStop {
            position: 0.0
            color: {
                if (mouseArea.pressed)
                    return activePalette.dark
                else
                    return activePalette.light
            }
        }
        GradientStop { position: 1.0; color: activePalette.button }
    }

    MouseArea {
        id: mouseArea
        anchors.fill: parent
        onClicked: container.clicked();
    }

    Text {
        id: buttonLabel
        anchors.centerIn: container
        color: activePalette.buttonText
        text: container.text
    }
}

LineInput.qml

import QtQuick 2.0

FocusScope {
    id: wrapper

    property alias text: input.text
    property alias hint: hint.text
    property alias prefix: prefix.text
    property int font_size: 18

    signal accepted

    Rectangle {
        anchors.fill: parent
        border.color: "#707070"
        color: "#c1c1c1"
        radius: 4

        Text {
            id: hint
            anchors { fill: parent; leftMargin: 14 }
            verticalAlignment: Text.AlignVCenter
            text: "Enter word"
            font.pixelSize: font_size
            color: "#707070"
            opacity: input.length ? 0 : 1
        }

        Text {
            id: prefix
            anchors { left: parent.left; leftMargin: 14; verticalCenter: parent.verticalCenter }
            verticalAlignment: Text.AlignVCenter
            font.pixelSize: font_size
            color: "#707070"
            opacity: !hint.opacity
        }

        TextInput {
            id: input
            focus: true
            anchors { left: prefix.right; right: parent.right; top: parent.top; bottom: parent.bottom }
            verticalAlignment: Text.AlignVCenter
            font.pixelSize: font_size
            //color: "#707070"
            color: "black"
            onAccepted: wrapper.accepted()
        }
    }
}

注意

1、以上内容是转载的原文,在下面的测试环境下,无法看到界面,不知道为什么:

开发环境:Qt5.3.1

项目类型:Qt Quick Controls

2、将main.qml改成下面的就可以看到界面了

import QtQuick 2.2
import QtQuick.Controls 1.1

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit();
            }
        }
    }

    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }

    Rectangle
    {
        id: login_gui

        width: 320; height: 480

        SystemPalette { id: activePalette }

        //背景图片
        Image
        {
            id: background
            anchors { top: parent.top; bottom: parent.bottom }
            anchors.fill: parent
            source: "pics/pic1.png"
            fillMode: Image.PreserveAspectCrop
        }

        //顶烂
        Item
        {
            id: top_bar
            width: login_gui.width; height: login_gui.height * 0.05
            anchors.top: login_gui.top

            Text
            {
                id: title
                anchors { top: parent.top; horizontalCenter: parent.horizontalCenter }
                text: "登陆"
                font.bold: true
                font.pointSize: login_gui.height * 0.05 * 0.7
                color: "dark red"
            }
        }

        //空白栏
        Item
        {
            id: space1
            width: login_gui.width; height: login_gui.height * 0.1
            anchors.top: top_bar.bottom
        }

        //登陆框
        Rectangle
        {
            id: rect1
            width: login_gui.width * 0.8; height: login_gui.height * 0.3
            anchors { top: space1.bottom; horizontalCenter: parent.horizontalCenter }
            border.color: "#707070"
            color: "transparent"

            LineInput
            {
                width: rect1.width * 0.8; height: rect1.height * 0.2
                font_size:height * 0.7
                anchors {horizontalCenter: rect1.horizontalCenter; top: rect1.top; topMargin: 8}
                hint: "请输入用户号"
            }

            LineInput
            {
                width: rect1.width * 0.8; height: rect1.height * 0.2
                font_size:height * 0.7
                anchors {horizontalCenter: rect1.horizontalCenter; bottom: btn_login.top;  bottomMargin: rect1.height * 0.1}
                hint: "请输入密码"
            }

            Button
            {
                id: btn_login
                width: rect1.width * 0.35; height: rect1.height * 0.2
                anchors { left: rect1.left; leftMargin: 28; bottom: rect1.bottom; bottomMargin: 8 }
                text: "登陆"
                //onClicked: SameGame.startNewGame()
            }

            Button
            {
                id: btn_quit
                width: rect1.width * 0.35; height: rect1.height * 0.2
                anchors { right: rect1.right; rightMargin: 28; bottom: rect1.bottom; bottomMargin: 8 }
                text: "退出"
                //onClicked: SameGame.startNewGame()
            }
        }
    }
}

原文地址:https://www.cnblogs.com/happykoukou/p/9606506.html

时间: 2024-11-16 15:31:52

登陆界面(一)(转)的相关文章

Eclipse通过jdbc连接数据库制作简单登陆界面

一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了,HTML/CSS+JS可以实现对界面的描绘渲染,而JAVA则可以做后台数据处理,XML也是可以当作传输数据的介质(思考:XML比HTML强大这么多,为什么它没能替代HTML?): 这篇文章通过简单的JSP文件实现登陆界面,所以只用到了以下技术: HTML/CSS,简单演示就不做CSS样式了,可自行学

dede后台登陆又返回登陆界面怎么办

dede后台登陆又返回登陆界面......网上说的DATA等文件夹都有写入权限,试过好几种方法都不行! 其实最有可能的原因就是data文件夹的权限问题.大家可以通过FTP看下data文件的权限是否是775,也就是全部都有可读可写可执行的权限.记得把data文件的权限和sessions文件夹的权限改成777,用8Uftp软件进去以后,右键更改文件属性就可以了! 修改完这些以后记得用火狐或者遨游浏览器再登录下看看,360和IE记得要清空浏览器的缓存.第一步才是最重要的. .如果上面两步还不行的话就清

C# 使用ini格式存储值(比如:登陆界面的用户名和登录号)

这是第一篇博文,以后在平时的开发中通过自己找资料研究出来的东西都定期做个归纳整理出来分享给大家,也便于我自己以后再看看~~~ ps:当然,感觉自己还是个小菜~对于大神来说可能内容比较简单,莫见笑~很多东西也都是网上找来规整出来的,如果对你能有一点点帮助,将是我莫大的荣幸 首先,如果做了一个登陆界面,其中要求输入“用户名”[UserName],密码,才能登陆,为了免于每次打开系统都要输入用户名,所以,我们现在就要实现一个文件存储功能, 文件将以“.ini”格式存储: 写入文件: 1 [DllImp

IOS简单的登陆界面

主要需要注意的几个问题: 1.导入图片方式最好用文件导入 代码: 在ViewController.m文件中 2.UILable常用属性 @property(nonatomic,copy)   NSString           *text; //设置文本内容 @property(nonatomic,retain) UIFont             *font; //设置字体 @property(nonatomic,retain) UIColor            *textColor;

Ubuntu Kylin 14.04LTS 开机后卡在登陆界面,可以进入字符界面,或者登陆后鼠标不显示但是管用

2014年4月27日,距离中期检查还有七天,基本上什么也没做,特别着急,雨已经下了快一天了,中午用美团外卖定的黄焖排骨,MD,什么玩意,那么一点点就18块钱,一看就不值五块钱,发誓再也不吃,最重要的是订完两个半小时才送到,饿过劲了都 吐槽一下Ubuntu 的谷歌输入法,真是不符合国人习惯 刚刚整好这个毛病,有种致之死地而后生的狂喜 ubuntu今天上午关机去win7,买了个东西回来就没法开机了,开机后卡在登陆界面,鼠标不能动,好不容易鼠标能动了,也能输入密码了,结果进去之后又卡住了,不显示桌面,

iOS设计中不同屏幕适配的方法-登陆界面

在iOS的手机界面设计中,由于不同手机类型的手机的尺寸不同,那么在设计手机界面时就得对屏幕进行适配,这里就以登陆界面的设计为例简单说明下 实现屏幕适配的方法:(屏幕自动适配缩放) 效果: 下面就看下代码实现的过程: 1.在代理中实现的代码: AppDelegate.h // 登陆界面设计 #import <UIKit/UIKit.h> #define ScreenHeight [[UIScreen mainScreen]bounds].size.height//屏幕高度 #define Scr

div+css登陆界面案例2

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> body{ margin: 0px; padding:0px; font-size:12px; background-color: #1873a

div+css登陆界面案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style type="text/css"> body{ margin: 0px; padding:0px; font-size:12px; background-color: #1873aa; text-align: center; overflow: hid

alertDialog创建登陆界面,判断用户输入

alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: 1 public boolean onOptionsItemSelected(MenuItem item) { 2 // TODO Auto-generated method stub 3 switch(item.getItemId()){ 4 case 1: 5 Intent intent = new Intent(); 6

Android学习笔记(二)--iparty登陆界面

打开应用,判断是否第一次使用. 1 private void beforeInitMenu() { 2 AppContext appContext = (AppContext) getApplicationContext(); 3 4 if (appContext.isFirstLogin()) { 5 // 第一次启动 6 //如果第一次启动,出现5张引导图片. 7 Intent intent = new Intent(this, GuideActivity.class); 8 startAc