簡體   English   中英

在e4中打開多個窗口會鎖定以前的窗口

[英]Opening multiple windows in e4 locks previous windows

我正在使用E4和SWT構建應用程序。 對於按鈕單擊,有時會打開一個新窗口(shell)。 問題是當我打開一個新窗口時,我無法使用其他窗口,從某種意義上說,它已被鎖定。 除非我關閉最新窗口,否則無法訪問其他窗口。 這使得調試有點困難。 我不確定這是否是由e4模型或SWT框架引起的。 你能告訴我為什么會這樣,以及如何克服這個問題?

提前致謝。

我為我創建一個新的窗口(以前也遇到了這個問題MWindow )並將其添加到一個角度探討( MPerspective )。 如果這是你正在做的,那么你有兩個選擇:

  1. 將新窗口添加到應用程序( MApplication )而不是透視圖

  2. 將標記IPresentationEngine.WINDOW_TOP_LEVEL添加到新窗口。 (有關更多信息,請參閱: https//bugs.eclipse.org/bugs/show_bug.cgi?id = 441251

(2)的附加信息:如果您還希望窗口最小化並在Windows任務欄中顯示圖標,則可以使用以下設置配置渲染器

MWindow window = modelService.createModelElement(MTrimmedWindow.class);
window.getTags().add(IPresentationEngine.WINDOW_TOP_LEVEL);         
window.getPersistedState().put(IPresentationEngine.STYLE_OVERRIDE_KEY, "" + SWT.SHELL_TRIM);

我發現了什么問題。 shell創建錯誤,因為我使用的是APPLICATION_MODAL位:

shell = new Shell(Display.getCurrent(), SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.SHELL_TRIM | SWT.APPLICATION_MODAL | SWT.YES | SWT.NO);

它必須是PRIMARY_MODAL:

shell = new Shell(Display.getCurrent(), SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.SHELL_TRIM | SWT.PRIMARY_MODAL | SWT.YES | SWT.NO);

謝謝你的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM