【问题标题】:Odd behavior - SWT Browser on Mac OS X奇怪的行为 - Mac OS X 上的 SWT 浏览器
【发布时间】:2009-05-29 14:23:20
【问题描述】:

这是一种奇怪的行为,没有图片很难解释,所以我会尽力而为。

我的应用程序有一个嵌入式 SWT 浏览器小部件,并且该应用程序是跨平台的。它在 Windows 上完美运行,但需要支持 Mac OS X 10.4 及更高版本。浏览器小部件位于右侧的组合中,而另一个组合中的文件树位于左侧。用户从树中点击文件,它们依次被解密并显示在浏览器中。

我目前正在 Mac 10.4.11 上测试该应用程序,这种奇怪的行为仅在我调整 shell 窗口大小时才会发生。复合和浏览器小部件本身会正确调整大小。我可以看到对象的边界/边界。问题是应该在浏览器中的图像 - 移位(几乎就像显示的图像没有锚定到浏览器的左上角一样)。它从上到下对齐,并且图像本身的大小是正确的,但是在调整大小完成后图像会移动。该应用程序在最初加载时看起来很好(意味着图像对齐完美),当文件树被隐藏并且浏览器/复合占用完整外壳时看起来很好,当文件树恢复时看起来很好。只有在调整大小时才会发生这种情况。

我希望这是有道理的。有什么想法吗?

【问题讨论】:

    标签: macos browser swt


    【解决方案1】:

    好的,我想通了。这是我一开始的(伪代码):

    webBrowser.setSize(shell.width, shell.height);

    webComposite.getParent().layout();

    结果我需要以与恢复文件树时相同的方式恢复浏览器及其组合(因为我知道在该操作之后它的大小正确)。上面的代码被替换为:

    webComposite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true));

    webComposite.setBounds(widthOfTreeComposite, 0, shell.width, shell.height);

    webComposite.setSize(shell.width, shell.height);

    webBrowser.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true));

    webBrowser.setBounds(0, 0, shell.width, shell.height);

    【讨论】:

    • 很高兴你让它工作。我也遇到过这样的错误,我用随机组合的包、布局、重绘和更新插入随机位置来修复它们。
    • 嗨@JohnHenckel,即使我有类似的问题。我已经发布了一个关于这个的问题。你能检查一下吗。 stackoverflow.com/questions/30504741/…
    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    相关资源
    最近更新 更多