openLaszlo简单登陆窗口实现

本文介绍了一个使用Laszlo系统实现的登录界面案例,包括界面布局、交互逻辑及后端验证流程。通过XML配置定义了登录窗口、模态对话框及验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 laszlo 部分
<?xml version="1.0" encoding="GB2312"?>
<canvas bgcolor="0xEAEAEA" height="600" width="800"
    oninit
="quest.setAttribute('haswindowfocus', true)">
    
<silverstyle isdefault="true" canvascolor="null"/>
    
<bluestyle name="bluecolors" canvascolor="null"/>
    
<goldstyle name="goldcolors" canvascolor="null"/>
    
    
<dataset name="checker" src="check.jsp" type="http"/>

<modaldialog id="letmein" height="200" width="300" x="180" y="100" style="bluecolors">
    
<animator name="fadein" attribute="opacity"  from="0" to="1"  duration="500" start="false"/>
        
<method name="doAfter">
            quest.fadein.doStart();
            bye.setAttribute('text','再见');
        
</method>
    
<form id="loginform">
    
<submit name="doSubmit" data="${checker}"/>
    
<view id="loginmain" align="center" layout="axis: y; spacing: 20">
        
<view layout="axis: x; spacing: 5">
            
<text y="2" >用户:</text>
            
<edittext width="120" id="username" name="username">哈哈</edittext>
        
</view>
        
<view layout="axis: x; spacing: 5">
            
<text y="2" >密码:</text>
            
<edittext id="password" width="120" name="password">123</edittext>
        
</view>
        
<view align="center" layout="axis:x; spacing:20" y="150">
              
<button>确认
                
<method event="onclick">
                    loginform.doSubmit.submit();
                
</method>
              
</button>
              
<button>取消
                
<method event="onclick">
                    letmein.close();
                    letmein.doAfter();
                
</method>
              
</button>
        
</view>
    
<datapointer id="respoint" xpath="checker:/response">
        
<method event="ondata">
            if (this.xpathQuery("/response/text()")=="ok") {
                letmein.close();
                quest.fadein.doStart();
                bye.setAttribute('text','欢迎'+username.getText());
                quest.out();
            }
            else
                err.open();
        
</method>
    
</datapointer>
    
</view>
    
</form>
</modaldialog>
<alert id="err">密码错误!</alert>
<window style="goldcolors" id="quest" title="神秘地带"
            x
="100" y="40" width="500" height="300" resizable="true">
    
<animator name="fadeout" attribute="opacity"  to=".15"  duration="500" start="false"/>
    
<animator name="fadein" attribute="opacity"  from=".15" to="1"  duration="500" start="false"/>
    
<animator name="leftesc" attribute="x" from="100" to="-900" duration="200" start="false"/>
    
<method event="oninit">
        this.logonDelegate = new LzDelegate(this, "logonmethod" );
        LzTimer.addTimer( this.logonDelegate, 2000 );
    
</method>
    
<method name="logonmethod">
        this.fadeout.doStart();
        letmein.open();
        letmein.fadein.doStart();
    
</method>
    
<method name="out">
        this.leftescDelegate = new LzDelegate(this, "leftout" );
        LzTimer.addTimer( leftescDelegate, 5000 );
    
</method>
    
<method name="leftout">
            quest.leftesc.doStart();
            quest.destory();
    
</method>
    
<view x="${(immediateparent.width / 2) 
                       - (this.width / 2)}"
 y="${(immediateparent.height / 2) 
                       - (this.height / 2)}"
>
        
<text id="bye" fontsize="40" width="300"></text>
    
</view>
</window>
</canvas>

check.jsp部分
<?xml version="1.0" encoding="GBK"?>
<%@ page import="java.util.*" %>
<%@ page contentType="text/xml; charset=GBK" %>

<response>
<%
    
String user = request.getParameter("username");
    
String password = request.getParameter("password");
    
String uuser = new String(user.getBytes("8859_1"), "UTF-8");
    
if(uuser.equals("haha")&&password.equals("123"))
        out.print(
"ok");
%>
</response>

【基于QT的调色板】是一个使用Qt框架开发的色彩选择工具,类似于Windows操作系统中常见的颜色选取器。Qt是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式设备,支持C++和QML语言。这个调色板功能提供了横竖两种渐变模式,用户可以方便地选取所需的颜色值。 在Qt中,调色板(QPalette)是一个关键的类,用于管理应用程序的视觉样式。QPalette包含了一系列的颜色角色,如背景色、前景色、文本色、高亮色等,这些颜色可以根据用户的系统设置或应用程序的需求进行定制。通过自定义QPalette,开发者可以创建具有独特视觉风格的应用程序。 该调色板功能可能使用了QColorDialog,这是一个标准的Qt对话框,允许用户选择颜色。QColorDialog提供了一种简单的方式来获取用户的颜色选择,通常包括一个调色板界面,用户可以通过滑动或点击来选择RGB、HSV或其他色彩模型中的颜色。 横渐变取色可能通过QGradient实现,QGradient允许开发者创建线性或径向的色彩渐变。线性渐变(QLinearGradient)沿直线从一个点到另一个点过渡颜色,而径向渐变(QRadialGradient)则以圆心为中心向外扩散颜色。在调色板中,用户可能可以通过滑动条或鼠标拖动来改变渐变的位置,从而选取不同位置的颜色。 竖渐变取色则可能是通过调整QGradient的方向来实现的,将原本水平的渐变方向改为垂直。这种设计可以提供另一种方式来探索颜色空间,使得选取颜色更为直观和便捷。 在【colorpanelhsb】这个文件名中,我们可以推测这是与HSB(色相、饱和度、亮度)色彩模型相关的代码或资源。HSB模型是另一种常见且直观的颜色表示方式,与RGB或CMYK模型不同,它以人的感知为基础,更容易理解。在这个调色板中,用户可能可以通过调整H、S、B三个参数来选取所需的颜色。 基于QT的调色板是一个利用Qt框架和其提供的色彩管理工具,如QPalette、QColorDialog、QGradient等,构建的交互式颜色选择组件。它不仅提供了横竖渐变的色彩选取方式,还可能支持HSB色彩模型,使得用户在开发图形用户界面时能更加灵活和精准地控制色彩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值