【问题标题】:Perl FileSelect: Set window positionPerl FileSelect:设置窗口位置
【发布时间】:2020-03-04 06:03:36
【问题描述】:

我正在使用 Tk::FileSelect 模块中的 Perl FileSelect。默认情况下,FileSelect 主窗口显示在屏幕中间。

但是,对于我的双显示器设置,主窗口的一半显示在左侧显示器上,另一半显示在右侧显示器上。我猜它试图在组合双显示器桌面的中间显示主窗口。但是,我不喜欢它的样子。我想仅在左侧显示器上显示 FileSelect 主窗口。我尝试了各种 -geometry => "+0+0" 选项,但我无法让它工作。有人知道怎么做吗?

这是一个代码sn-p:

use Tk;
use Tk::FileSelect;
$a = MainWindow->new;
$b = $a->FileSelect();
$b->Show;

【问题讨论】:

  • 您的问题是否与 perl 编程有关? FileSelect 是唯一的选择吗? 夜间指挥官呢? -geometry => .... 适用于图形模式,您应该能够通过其标题将窗口移动到您想要的屏幕上的任何位置。你的问题不适合在这里。
  • 是的。这是一个 perl 编程问题。我在 perl 程序中使用 Tk::FileSelect 小部件 (metacpan.org/pod/distribution/Tk/pod/FileSelect.pod)。对于许多 Tk 小部件,可以配置窗口的显示位置。我不知道如何为 FileSelect 小部件执行此操作。不能用鼠标手动移动窗口。我不知道 Night Commander 是什么,快速的 WWW 搜索不会产生任何相关信息。
  • 我不明白你为什么认为这个问题不合适。
  • 不清楚什么是FileSelect,可能需要关注dialog,File selection box
  • 如果您认为您的问题合适,那么您是否愿意提供最小的 perl 代码 sn-p 来演示问题。

标签: perl tk


【解决方案1】:

其实,我只是想通了。在 FileSelect.pm 文件中,这是用户不应该编辑的内容,我创建了一个名为 Popup() 的子例程。该子例程在 Tk 框架内具有特殊意义。我不知道那是什么意思,所以下面的内容可能是一个拼凑。但它似乎有效:

sub Popup {
    my ($w) = @_;
    $w->geometry("+0+0");
    $w->deiconify();
    $w->raise;
}

【讨论】:

  • 您可以在不编辑文件的情况下执行此操作:sub Tk::FileSelect::Popup { 在您自己的脚本中。然而,它肯定是一个 kludge 并且肯定有一个正确的方法来完成这个,但我不精通 Tk。
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多