如何解决Perl Tk 画布,窗口标题栏与画布重叠,overrideredirect(1)
我的 perl 代码如下所示:
#!/usr/bin/env perl
use strict;
use warnings;
use Tk;
my $mw = Tk::MainWindow->new();
$mw->overrideredirect(1);
my $canvas = $mw->Canvas(
-bg => 'white',-width => 410,)->pack(-fill => 'both',-expand => 1);
my $rect_filled = $canvas->createRectangle(
0,360,100,-outline => '#C0C0C0',-fill => '#FFEC73',);
$canvas->bind( $rect_filled,'<Enter>' => sub{
$canvas->itemconfigure( $rect_filled,-outline => '#E0E0E0',-fill => '#0000ff',);
});
$canvas->bind( $rect_filled,'<Leave>' => sub{
$canvas->itemconfigure( $rect_filled,);
});
$mw->MainLoop();
如果我运行此代码,我可以看到黄色矩形。但是,当我将鼠标从上方移入画布时,ENTER 事件仅在 ~30 像素后出现,如屏幕截图所示。
好像标题栏还在画布上方。
如何停止这种行为,以便也从坐标 (0,0) 引发 ENTER 事件?
-- 问题更新:
- Debian 8.11
- 侏儒 3.14.1
- Perl 5.20.2
- 传统知识 804.032
解决方法
我在阅读本文后找到了解决方法:
https://metacpan.org/pod/distribution/Tk/pod/Wm.pod#BUGS
return new GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
print('hey');
},child: Container(
color: Colors.white,child: TextField(
onChanged: (text) {},),);
但这是正确的方式吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。