GUI实践-为窗口添加菜单条和工具条
- 格式:doc
- 大小:15.00 KB
- 文档页数:2
WinForm窗体菜单和⼯具栏1.ContextMenuStrip右键菜单控件/窗体属性中的⾏为属性中ContextMenuStrip来进⾏选择使⽤2.MenuStrip可以⾃⼰编辑的的菜单栏每⼀个选项都有⾃⼰的属性属性中外观属性Image设置每个选项前⾯的⼩图标"-"作为分割线,也可以右键选择插⼊,⾥⾯也有分割线右键插⼊标准项,可以插⼊程序⾃带的模板,减少编辑时间选中某个选项,找到属性中的ShortCutKey来实现编辑这个选项的快捷键菜单栏右边还有个⼩箭头.也可选择添加ComBox下拉菜单,和TextBox⽂本框3.StatusStrip底部状态栏StatusLabel可以添加图标,⽂字,和Label⼀样ProgressBar可以添加进度条DropDownButton下拉菜单,点击图⽚也能下拉SplitButton下拉菜单,点击图⽚不能下拉,只能点击箭头下拉4.ToolStrip⼯具栏控件为⾼度可配置的、可扩展的控件,它提供了许多属性、⽅法和事件,可⽤来⾃定义外观和⾏为,可与ToolStripContainer配合使⽤,⽤户可⾃⾏调整位置 Dock 获取或设置 ToolStrip 停靠在⽗容器的哪⼀边缘。
AllowItemReorder 获取或设置⼀个值,让该值指⽰拖放和项重新排序是否专门由 ToolStrip 类进⾏处理。
LayoutStyle 获取或设置⼀个值,让该值指⽰ ToolStrip 如何对其项进⾏布局。
Overflow 获取或设置是将 ToolStripItem 附加到 ToolStrip,附加到 ToolStripOverflowButton,还是让它在这两者之间浮动。
IsDropDown 获取⼀个值,该值指⽰单击 ToolStripItem 时,ToolStripItem 是否显⽰下拉列表中的其他项。
OverflowButton 获取 ToolStripItem,它是启⽤了溢出的 ToolStrip 的“溢出”按钮。
FreeCAD⼆次开发-创建Python⼯作台,添加菜单栏和⼯具条,FreeCAD命令FreeCAD作为⼀款基于OpenCasCAD内核的开源CAD软件,可以在GitHub上下载源代码。
阅读源代码,有助于我们学习CAD软件架构,了解底层⼏何算法。
由博主Caesar卢尚宇⾃学整理(纯粹出于对三维CAD软件开发的热爱)可以把FreeCAD理解成⼀个QT界⾯的容器,每次FreeCAD启动时都去Mod⽂件夹⾥读取所有⼯作台。
我们在Mod⾥添加⾃⼰的⼯作台⽂件夹,⾥⾯放三个⽂件。
Init.py这个是FreeCAD启动的时候执⾏的,不与界⾯交互的,后台执⾏。
(⼀般做界⾯⼯具开发,这个⽂件为空就⾏了)InitGui.py这个是FreeCAD启动的时候执⾏的,与界⾯交互的代码。
LSY.py这个是我们存放命令功能的⽂件。
InitGui.pyclass MyWorkbench ( Workbench ):MenuText = "My Workbench1"ToolTip = "A description of my workbench"Icon = """paste here the contents of a 16x16 xpm icon"""def Initialize(self):"""This function is executed when FreeCAD starts"""import LSY # import here all the needed files that create your FreeCAD commandsself.list = ['MySecondCommand', 'MySecondCommand1'] # A list of command names created in the line aboveself.appendToolbar('My Commands',self.list) # creates a new toolbar with your commandsself.appendMenu('My New Menu',self.list) # creates a new menuself.appendMenu(["An existing Menu", "My submenu"], self.list) # appends a submenu to an existing menudef Activated(self):"""This function is executed when the workbench is activated"""returndef Deactivated(self):"""This function is executed when the workbench is deactivated"""returndef ContextMenu(self, recipient):"""This is executed whenever the user right-clicks on screen"""# "recipient" will be either "view" or "tree"self.appendContextMenu("My commands", self.list) # add commands to the context menudef GetClassName(self):# this function is mandatory if this is a full python workbenchreturn"Gui::PythonWorkbench"Gui.addWorkbench(MyWorkbench())Caesar卢尚宇2020年3⽉24⽇LSY.pyimport FreeCADimport FreeCADGuifrom PySide import QtGui, QtCoreclass MySecondCommand:def GetResources(self):return {'Pixmap': 'freecad', 'MenuText': 'show Message1', 'ToolTip': 'Print show Message1'}def Activated(self): #点击按钮执⾏的动作"""Do something here"""reply = rmation(None,"","Houston, we have a problem")returndef IsActive(self):"""Here you can define if the command must be active or not (greyed) if certain conditionsare met or not. This function is optional."""return TrueFreeCADGui.addCommand('MySecondCommand', MySecondCommand())class MySecondCommand1:def GetResources(self):return {'Pixmap': 'freecad', 'MenuText': 'show Message2', 'ToolTip': 'Print show Message2'}def Activated(self): #点击按钮执⾏的动作"""Do something here"""reply = QtGui.QMessageBox.question(None, "", "This is your chance to answer, what do you think?",QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes:# this is where the code relevant to a 'Yes' answer goespassif reply == QtGui.QMessageBox.No:# this is where the code relevant to a 'No' answer goespassreturndef IsActive(self):"""Here you can define if the command must be active or not (greyed) if certain conditionsare met or not. This function is optional."""return TrueFreeCADGui.addCommand('MySecondCommand1', MySecondCommand1())Caesar卢尚宇2020年3⽉24⽇这两个⽂件⾥的代码,也是从社区⾥找到的。
图形用户界而GUI (Graph i cal User Interfaces)就是一种用户与计算机进行信息交流得工具与方法川I各种图形对象组成,在这种用户界而卜;用户得命令与对程序得控制就是通过鼠标等输入设备''选择"各种图形对象来实现得。
软件开发者只需在曲软件开发工具门动生成得程庠代码中添加门己得运算或控制代码,就町以完成应用程序得设计。
□前90%以上得应用程序与软件都就足在GUI卜•运行得。
血MATLA B有两种GUI用户界面控件得创建方式,基丁命令行得编程方式制作与基丁•MAT LAB提供得图形用户界面开发坏境GUIDE中得图形用户界而开发工具得GUI创建方式制作.这里主要介绍基r- GUIDE得创建方式。
在GUI得设计中应注意在面板上进行按钮得静态布S时一宦要事先预算好按钮得个数.更重耍得一点就是如果您放冒了1个按钮井且对此按钮得屈性进行了某种操作,那么该按钮得痕迹将永远保存在您所建得而板上,您将该按钮删除,然后重新建一个按钮,并将其屈性值设置与上一个按钮一模一样,那并不能保证您将上一按钮覆盖,在程序进行运行得过程中它只会识别上一按钮(已经删除得按钮),而您将上一按诳得删除则造成程序运行中得错误或就是得不到您预想得界面效果,为了避免这种情况,在进行设计得时候对任一按钮屈性得设置不要与己经剧除按钮得屈性相同.Matla b为GUI设计一共准备了4种模板,分别就是:^BlankGUI(Default)(空白模板,默认): ©GUI with Uicontrols (带控件对象得GUI 模板);bGUIwith Axes and M e n u (带坐标轴与菜单得GUI模板);^Modal Quest! o n D i a 1 og (带模式问题对站框得GUI模板)。
並肖用户选择不同得模板时,在G UI设计模板界面得右边就会显示出与该模板对应得GUI图形。
在GUI设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口。
VBA实现自定义菜单与工具栏的步骤与技巧自定义菜单和工具栏是VBA中非常有用的功能,能够提供更加灵活和高效的用户界面。
通过自定义菜单和工具栏,我们可以根据自己的需求添加或删除菜单项和工具按钮,使得用户能够方便地访问所需的功能。
本文将介绍如何使用VBA实现自定义菜单与工具栏的步骤与技巧。
一、创建自定义菜单要创建自定义菜单,首先需要打开Visual Basic编辑器(VBE),然后按下ALT+F11快捷键。
在VBE中,选择“插入” -> “用户窗体”或者右键单击项目资源管理器中的该工作簿并选择“插入模块”。
在新的用户窗体或模块中,输入以下代码,以创建一个名为"CustomMenu"的自定义菜单。
```vbaSub CreateCustomMenu()Dim cBar As CommandBarDim cBarControl As CommandBarControl' 如果已经存在名称为"CustomMenu"的菜单,则删除它On Error Resume NextmandBars("CustomMenu").DeleteOn Error GoTo 0' 创建自定义菜单Set cBar = mandBars.Add(Name:="CustomMenu", Position:=msoBarPopup, _MenuBar:=False, Temporary:=True)' 添加菜单项Set cBarControl = cBar.Controls.Add(Type:=msoControlButton)With cBarControl.Caption = "菜单项1".OnAction = "Macro1"End WithSet cBarControl = cBar.Controls.Add(Type:=msoControlButton)With cBarControl.BeginGroup = True.Caption = "菜单项2".OnAction = "Macro2"End WithEnd SubSub Macro1()' 菜单项1的宏代码End SubSub Macro2()' 菜单项2的宏代码End Sub```在创建的自定义菜单中,我们通过`CommandBar`对象和`CommandBarControl`对象来创建和添加菜单项。
pyqt qtoolbar 用法PyQt是一个Python的GUI编程工具包,而QToolBar是PyQt 中的一个工具栏类,用于在应用程序窗口中创建工具栏。
通过QToolBar,可以向应用程序添加各种操作按钮、工具按钮、分隔符等,以便用户可以快速访问常用的功能。
要使用QToolBar,首先需要创建一个工具栏对象,然后将各种操作按钮添加到工具栏中。
以下是一个简单的示例代码,演示了如何使用QToolBar:python.import sys.from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar.class Example(QMainWindow):def __init__(self):super().__init__()。
self.initUI()。
def initUI(self):toolbar = self.addToolBar('Toolbar')。
openAction = QAction('Open', self)。
saveAction = QAction('Save', self)。
toolbar.addAction(openAction)。
toolbar.addAction(saveAction)。
self.setGeometry(300, 300, 300, 200)。
self.setWindowTitle('QToolBar Example')。
self.show()。
if __name__ == '__main__':app = QApplication(sys.argv)。
ex = Example()。
sys.exit(app.exec_())。
在这个示例中,我们创建了一个继承自QMainWindow的类Example,然后在initUI方法中创建了一个工具栏对象toolbar,并向其中添加了两个操作按钮openAction和saveAction。
实践——为窗口添加菜单条和工具条
步骤1:新建工程,以自己的学号命名:如。
在建好的java project里,新建可视化类mainFrame,继承自swing包中的JFrame类,窗口自带内容面板名称为“jContentPane”,将窗口的标题改为“主窗体”,修改窗口的属性,将“visiable”属性改为“true”;
步骤2:修改jContentPane,将其“layout”属性改为“null”;
步骤3:下面开始制作菜单,打开可视化编辑区域右侧浮动的组件面板“Palette”,添加菜单条,在“swing menus”页中选中JMenuBar,单击拖动到“mainFrame”,将其命名为“jJMenuBar”;
注意:也可以在“java beans”页面,选中“this-“主窗体”,再进行拖动。
步骤4:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加菜单,在“swing menus”页中选中JMenu,单击拖动到“jJMenuBar”,将其命名为“jMenu1”;修改“jMenu1”的“text”属性为“文件”。
步骤5:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加菜单项,在“swing menus”页中选中JMenuItem,单击拖动到“jMenu1”,将其命名为“jMenuItem1”;修改“jMenuItem1”的“text”属性为“新建”。
步骤6:重复步骤5的操作,新建菜单项“jMenuItem2”;修改“jMenuItem2”的“text”属性为“保存”。
步骤7:重复步骤5的操作,新建菜单项“jMenuItem3”;修改“jMenuItem3”的“text”属性为“退出”。
步骤8:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加工具栏,在“swing menus”页中选中JToolBar,单击拖动到“jContentPane”,将其命名为“jJToolBarBar”;在可视化编辑区合理调整工具条的大小;
步骤9:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加工具栏里面的按钮,在“Swing Components”页中选中JButton,单击拖动到“jJToolBarBar”,将其命名为“jButton1”;修改“jButton1”的“icon”属性,给按钮添加一幅图片;可以从工程目录里添加,也可以从本地硬盘的某个位置添加;
步骤10:重复步骤9,再给工具条添加一个按钮;
步骤11:给菜单项“退出”添加事件处理代码;在Eclipse工作台的左下角“java bean”页面中选中“退出”菜单项,单击右键,在弹出的快捷菜单中选中“Event”,在弹出的二级菜单中选中“action performed”单击,此时编译环境自动生成了“退出”菜单项的动作事件处理代码框架如下:
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
在方法体里添加如下:
System.exit(0);
步骤12:重复步骤11,也可以给工具栏中的某个按钮添加事件处理。