1. 程式人生 > >SWT工具欄選單的實現

SWT工具欄選單的實現

彈出選單要定義為SWT.POP_UP 帶有下拉按鈕的工具欄按鈕要設定為SWT.DROP_DOWN 判斷是否是單擊下拉按鈕事件的方法程式碼: if(event.detail == SWT.ARROW) 顯示選單時,要先計算出選單所要出現的位置,然後通過setLocation(x,y)方法定位選單,最後使用setVisible(true)方法將選單顯示出來。 package com.layotech.www.toolbar; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; import com.layotech.www.facory.ImageFactory; public class ToolBarSample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("ToolBar"); shell.setLayout(new GridLayout()); Composite tool = new Composite(shell, SWT.NONE); tool.setLayoutData(new GridData(SWT.LEFT, SWT.TOP,true,false)); //建立工具欄物件 final ToolBar toolBar = new ToolBar(tool, SWT.FLAT); //建立開啟按鈕 ToolItem openItem = new ToolItem(toolBar, SWT.NONE); openItem.setImage(ImageFactory.loadImage(display, ImageFactory.OPEN_IMAGE)); openItem.setText("開啟"); openItem.setToolTipText("開啟"); final ToolItem helpItem = new ToolItem(toolBar, SWT.DROP_DOWN); helpItem.setImage(ImageFactory.loadImage(display, ImageFactory.PREVIEW_IMAGE)); helpItem.setText("幫助"); helpItem.setToolTipText("幫助"); final Menu helpMenu = new Menu(shell,SWT.POP_UP); MenuItem welcomeItem = new MenuItem(helpMenu, SWT.PUSH); welcomeItem.setText("歡迎"); new MenuItem(helpMenu, SWT.SEPARATOR); MenuItem updateItem = new MenuItem(helpMenu, SWT.PUSH); updateItem.setText("線上更新"); MenuItem aboutItem = new MenuItem(helpMenu, SWT.PUSH); aboutItem.setText("關於我們"); helpItem.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(Event event) { if(event.detail == SWT.ARROW){ //獲得幫助按鈕所在的座標位置和大小 Rectangle rec = helpItem.getBounds(); //計算出選單出現的起始位置 Point point = new Point(rec.x, rec.y+rec.height); //將該店轉化為與螢幕相對的點 point = toolBar.toDisplay(point); //設定選單的位置 helpMenu.setLocation(point.x,point.y); helpMenu.setVisible(true); } } }); toolBar.pack(); Text content = new Text(shell, SWT.MULTI); content.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); shell.setSize(200,150); shell.open(); while(!shell.isDisposed()){ if(!display.readAndDispatch()){ display.sleep(); } } ImageFactory.dispose(); display.dispose(); } }

相關推薦

SWT工具選單實現

彈出選單要定義為SWT.POP_UP 帶有下拉按鈕的工具欄按鈕要設定為SWT.DROP_DOWN 判斷是否是單擊下拉按鈕事件的方法程式碼: if(event.detail == SWT.ARROW) 顯示選單時,要先計算出選單所要出現的位置,然後通過setLocation(

word或wps中mathtype在工具/選單消失的解決方法

這裡以word 2007舉例說明。 word中綁定了MathType公式編輯器,一般情況下,word中會一直出現MathType的工具 可是有時候發現,word工具欄中的MathType不見了。在word中MathType是作為載入項啟動的,所以每次啟動word時都

window.open 全屏,js去掉工具,選單,位址列,狀態列..

1. window.open(url,'資金計劃項超支提醒','width='+(window.screen.availWidth-10)+',height='+(window.screen.availHeight-30)+ ',top=0,left=0,resizab

【Qt】選單工具、狀態列、右鍵選單實現

在QMainWidget基礎上實現選單欄、工具欄、狀態列、右鍵選單。 標頭檔案: #ifndef GWDEMO_H #define GWDEMO_H #include <QMainWindow> #include <QMenu> #include <Q

一步一步地實現選單(JMenuBar)工具(JPopupMenu)組合框(JComboBox)複選框(JCheckBox)單選按鈕(JRadioButton)文字域的綜合應用(三)

         此程式是在前面程式的基礎上增加響應事件的完整程式,為了不讓程式太長,我想將快捷鍵(右鍵彈出選單)的事件專門放在一個類裡面,但遇到了一個問題,發現不好將原來類EditorJFrame3裡的popupmenu和text成員變數引數傳遞到專門的事件類中,於是想出了

Qt實現選單工具,狀態列

1.選單欄 1.設計模式 點選 在這裡輸入 輸入完畢後直接回車即可 同樣子選單也是同樣操作。 如果我們想給選單設定ICON,可以如下操作: 在File下新建一個Open子選單,現在想給Open子選單新增Icon圖示。選中子選單Open,在O

android利用PopupWindow實現點選工具彈出下拉選單

package com.example.dropdownmenu; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bu

基於 SailingEase WinForm Framework 開發優秀的客戶端應用程式(3:實現選單/工具按鈕的解耦及狀態控制)

private void InitializeNavigation() { _navigationService.Register("MainMenu://Session[Text='會話']/Session/"); _navi

選單工具

選單:   選單包括選單欄(wx.MenuBar)、選單(wx.Menu)和選單項(wx.MenuItem)      選單欄不新增到父視窗,需要在頂級視窗中通過SetMenuBar(menuBar)方法新增。選單欄(wx.MenuBar)通過Append(menu,title)方法將選單新增到選單欄中

C#選單工具之contextMenuStrip、menuStrip、statusStrip、toolStrip和toolStripContainer

1、contextmenustrip:上下文選單(滑鼠右鍵選單) 2、menustrip:普通(窗體)選單 3、statusStrip狀態列 4、toolStrip工具欄,可匯入ico圖示 5、ToolStripContainer 這個控制元件其實很有意思,網上資料確

Qt入門 工具QToolBar和選單QMenuBar(六)

只有在繼承了QMainWindow的窗體,才會有this->menuBar()->addMenu();以及this->addToolBar()函式。 Qmune QMune與QMenuBar之間的關係見下面的程式碼。 //方法1: QMenu

底下選單實現

這兩天計劃做一個新的專案,但是當我剛開始動工的時候,發現自己連做過的功能都不知道怎麼實現,所以現在先做一個總結和整理,以後要用的時候可以方便使用. 有兩種方式實現:1.自定義. 2.用系統提供 1.自定義方式 ①寫好整體佈局 分為兩大部分,上面用幀佈局來展示fragment,

winform控制元件縮寫(三)選單工具

winform控制元件縮寫(三)選單和工具欄 序號 縮寫 空間名 1 cms ContextMenuStrip 2 mns

C#-WinForm-選單工具

C#-WinForm-選單和工具欄 通用屬性:   Enabled - 指示是否啟用該控制元件。   Visiable - 確定該控制元件是啟用還是隱藏的。   Checked - 指示元件是否處於選中狀態。   點選事件。 工具箱→選單和工具欄 1、Context

Qt學習(3)——選單工具

 0、建立專案: 前面步驟一樣,到下圖基類換一下: 1、選單欄 標頭檔案: 一些函式原型宣告: void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orient

Qt學習筆記——QMainWindow下建立選單工具

選單欄與工具欄的建立 <------QMainWindow 需要QAction 選單欄選項快捷鍵設定,QAction物件->setShortcuts(QKeySequence); <--函式表示設定QAction這個物件的快捷鍵,QKeySequen

QtCreator 應用程式主視窗——選單(QMenuBar)和工具(QToolBar)

1.選單欄(QMenuBar)和工具欄(QToolBar) 1.1 將選單項放在工具欄上面:將Action編輯器中的相應動作直接拖到工具欄上面 1.2 使用資源:新增資原始檔->Qt資原始檔-&g

VC++單文件程式固定選單工具

MainFrm.cpp框架類下,找到OnCreate方法 m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY); m_wndToolBar.EnableDocking(

PyQt5學習記錄(2)---QMainWindow選單、狀態列和工具

QMainWindow是繼承自QWidget,提供一個應用程式的主視窗。通過QMainWindow你可以新增自己的QToolBars、QDockWidgets、QMenuBar、QStatusBar等。見下圖: 所以如果我們寫程式的話,主視窗一般都是繼承QMainWind