swt如何编写菜单项

swt如何编写菜单项,第1张

package com.swtdesinger

import org.eclipse.jface.dialogs.MessageDialog

import org.eclipse.swt.SWT

import org.eclipse.swt.events.SelectionAdapter

import org.eclipse.swt.events.SelectionEvent

import org.eclipse.swt.graphics.Image

import org.eclipse.swt.widgets.Display

import org.eclipse.swt.widgets.Menu

import org.eclipse.swt.widgets.MenuItem

import org.eclipse.swt.widgets.Shell

public class Menu1 {

public static void main(String[] args) {

final Display display = Display.getDefault()

final Shell shell = new Shell()

shell.setSize(327, 253)

// ---------创建窗口中的其他界面组件-------------

// 创建主菜单:文件、帮助

Menu mainMenu = new Menu(shell, SWT.BAR)

shell.setMenuBar(mainMenu)

// Menu mainMenu = new Menu(shell, SWT.POP_UP)//右键d出式菜单

// shell.setMenu(mainMenu)

MenuItem fileItem = new MenuItem(mainMenu, SWT.CASCADE)

fileItem.setText("文件(&F)")

MenuItem helpItem = new MenuItem(mainMenu, SWT.CASCADE)

helpItem.setText("帮助(&H)")

// 创建“文件”菜单下的子菜单:新建、退出

Menu fileMenu = new Menu(shell, SWT.DROP_DOWN)

fileItem.setMenu(fileMenu)

final MenuItem newFileItem = new MenuItem(fileMenu, SWT.CASCADE)

newFileItem.setText("新建(&N)")

MenuItem exitItem = new MenuItem(fileMenu, SWT.CASCADE)

exitItem.setText("退出")

exitItem.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

newFileItem.setEnabled(false)// 菜单置灰

}

})

// 创建“文本->新建”菜单下的子菜单:项目、包、类、接口、其他

Menu newFileMenu = new Menu(shell, SWT.DROP_DOWN)

newFileItem.setMenu(newFileMenu)

MenuItem newProjectItem = new MenuItem(newFileMenu, SWT.PUSH)

newProjectItem.setText("项目\tCtrl+N")// \t相当于Tab键,起到间隔的作用

newProjectItem.setAccelerator(SWT.CTRL + 'N')// 定义快捷键Ctrl+N

newProjectItem.setImage(new Image(display, "icons/project.gif"))

// 监听菜单项的选择事件

newProjectItem.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

MessageDialog.openInformation(null, "", "选择了新建项目")

}

})

// 建立其他菜单项

new MenuItem(newFileMenu, SWT.SEPARATOR)// 分隔符

new MenuItem(newFileMenu, SWT.CHECK).setText("包")

new MenuItem(newFileMenu, SWT.PUSH).setText("类")

new MenuItem(newFileMenu, SWT.PUSH).setText("接口")

new MenuItem(newFileMenu, SWT.SEPARATOR)

new MenuItem(newFileMenu, SWT.RADIO).setText("其他(&O)")

// -----------------END------------------------

shell.layout()

shell.open()

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep()

}

display.dispose()

}

}

你可以照着改成你需要的菜单项即可。

下面是我给treeWidget加的右键。。。楼主参考下,改下就可以了

复制代码

private slots:

on_treeWidget_customContextMenuRequested(QPoint pos)

复制代码

ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu)

void Composer::on_treeWidget_customContextMenuRequested(QPoint pos)

{

currentItem = ui->treeWidget->itemAt( pos )

if( currentItem == 0)

return

QMenu *treeWidgeMenu = new QMenu(ui->treeWidget)

treeWidgeMenu->addAction(ui->actionS_rename)

treeWidgeMenu->addAction(ui->actionCollpase_Rooms)

treeWidgeMenu->addAction(ui->actionUpdate_Driver)

treeWidgeMenu->addSeparator()

treeWidgeMenu->addAction(ui->actionS_delete)

treeWidgeMenu->exec(QCursor::pos())

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11896684.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存