You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Slint Rust的ui.slint文件中如何使用LineEdit的paste()函数?

在Slint Rust的ui.slint文件中LineEdit的paste()函数用法

LineEdit的paste()是组件内置函数,作用是自动读取剪贴板内容,并将内容插入到当前光标所在位置,无需自行实现剪贴板访问和文本插入逻辑。

你的代码误区

你尝试的paste() => { }和on_paste: |text| ...都是错误写法:

  • paste()是调用型函数,不是可重写的回调逻辑;
  • Slint的LineEdit组件并没有on_paste这类事件处理器。

正确使用场景

1. 手动触发粘贴(比如按钮点击)

如果需要通过自定义操作(如按钮点击)主动触发粘贴,只需在对应事件中调用LineEdit实例的paste()方法即可:

export component MainWindow inherits Window {
    path_to_open := LineEdit {
        font-size: 14px;
        width: 350px;
        height: 35px;
        placeholder-text: "Enter Dir";
    }

    Button {
        text: "粘贴路径";
        clicked => {
            path_to_open.paste(); // 调用内置paste()函数完成粘贴
        }
    }
}

2. 系统默认快捷键粘贴(无需额外代码)

LineEdit组件默认支持系统原生粘贴快捷键(Windows:Ctrl+V,Mac:Cmd+V),只要LineEdit获得焦点,按下快捷键就会自动触发内置的paste()逻辑,不需要编写任何额外代码。


监听粘贴后的文本变化

如果需要在粘贴操作后处理文本,可以监听LineEdit的text属性变化事件,该事件会在任何文本修改(包括粘贴)时触发:

path_to_open := LineEdit {
    font-size: 14px;
    width: 350px;
    height: 35px;
    placeholder-text: "Enter Dir";

    text => {
        debug("更新后的文本:", self.text);
    }
}

内容的提问来源于stack exchange,提问作者Frank Schöfer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:05:09