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。
solidworks设置工具栏的方法和步骤
在SolidWorks中设置工具栏的方法和步骤如下:
1. 打开SolidWorks软件,在顶部菜单栏中选择“工具”选项。
2. 在下拉菜单中选择“自定义”选项。
3. 在弹出的“自定义”对话框中,选择“工具栏”选项卡。
4. 在左侧的“可用命令”列表中选择你想要添加到工具栏的命令。
5. 在右侧的“显示命令”列表中,选择你想要将命令添加到的工具栏。
可以选择现有的工具栏,也可以选择创建新的工具栏。
6. 在右侧的“显示命令”列表下方,点击“添加>>”按钮,将选中的命令添加到选定的工具栏中。
7. 可以通过拖动命令,调整命令在工具栏中的位置。
8. 当完成工具栏设置后,点击“确定”按钮保存设置。
9. 设置完成后,你将在SolidWorks界面的工具栏中看到你添
加的命令。
为对话框程序添加工具条和状态栏摘要:本文介绍了在对话框程序基础上通过程序控制来动态添加工具条和状态条的实现过程和方法。
一、引言对于不需要文档/视图结构支持的程序一般都采用对话框做为程序的基础框架。
虽然在对话框程序上可以通过修改其属性来添加系统菜单,但对比SDI和MDI程序的工具条和状态栏未免使界面显得简单、单调。
虽然在Visual Basic 中提供有独立的工具条和状态栏标准控件可以直接在对话框上使用,但Visual C++ 6.0所提供的26种基本Windows标准控件却没有将它们包含其中。
因此要在对话框程序中实现工具条和状态栏只能通过编程来动态实现。
二、工具条的实现过程MFC对于工具条和状态栏分别提供了CToolBar和CStatusBar两个基本类库,但由于在实现时MFC 对其做了过多的封装,以至无法了解内部的一些核心技术。
因此本文在实现过程中放弃了相对比较方便的CToolBar和CStatusBar类的使用,而是通过SDK(Software Developers Kit,软件开发工具箱)式的WinAPI 应用程序接口来实现的。
在API函数中经常需要用到对话框的窗口句柄和当前的实例句柄,在SDK程序设计中以上两个句柄可以直接从入口函数WinMain()中引出,而在MFC下也对其做了封装,不能直接获取。
但MFC也为其留有接口:CWnd窗口类提供的GetSafeHwnd()可以返回对话框的窗口句柄;函数AfxGetInstanceHandle()则可以获取当前应用程序的实例句柄。
由于对话框和状态栏属于程序界面的一部分,需要程序启动时就显示出来,因此获取句柄的代码和后面创建显示工具条、状态栏的全部代码都应当放在对话框初始化消息WM_INITDIALOG的响应函数OnInitDialog()中进行:HWND hDlg=GetSafeHwnd();HINSTANCE hInstance=AfxGetInstanceHandle();对于待添加的工具条按钮可以根据情况细分为两种:一种是Windows标准的一些工具条按钮比如打开文件、打印预览、在线帮助等等,这类工具条按钮可以直接使用预定义好的按钮图标的ID号,在VC自带的CommCtrl.h头文件中有详细定义;另一种就是用户自己添加的工具栏按钮,只能由用户在资源视图中为其指定相应的图标。
实验实验目的和内容(1)创建一个单文档应用程序Ex_SDI。
在“查看”菜单下添加一个子菜单“鼠标位置”,ID为ID_VIEW_MOUSE,当选择该菜单命令后,鼠标当前的位置显示到状态栏上,同时该菜单项呈选中状态。
再次选择该菜单命令,状态栏不再显示当前鼠标位置,同时该菜单项的选中状态被去除。
(2)在工具栏上添加并设计一个工具按钮图标,使该按钮和ID_VIEW_MOUSE菜单命令联动,并添加一个快捷键Ctrl+M和该菜单命令联动。
(3)在窗口客户区中右击鼠标,弹出快捷菜单,显示主菜单“查看”中的菜单命令。
结果如图5.1所示。
图5.1 Ex_SDI运行结果实验准备和说明(1)具备知识:菜单、工具条和状态栏。
(2)创建本次实验工作文件夹“…\Visual C++程序\实验\实验5”。
实验内容和步骤1.启动Visual C++ 6.0打开计算机,启动Visual C++ 6.0系统。
2.用MFC AppWizard(exe)创建一个默认的单文档应用程序Ex_SDI①选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”标签,在应用程序项目类型列表框中选择MFC AppWizard(exe)的项目类型,将工程文件夹定位到“…\Visual C++程序\实验\实验5”,并在工程框中输入项目名Ex_SDI。
②单击“确定”按钮,从出现的对话框中,选择单个文档(Single Document,SDI)应用程序类型。
③保留其他的默认选项,单击“完成”按钮出现一个对话框,显示出用户在步骤中作出的选择,单击“确定”按钮,系统开始创建。
3.添加菜单① 在项目工作区窗口中选择ResourceView 页面,双击资源Menu 项中的IDR_ MAINFRAME ,则菜单编辑器窗口出现在主界面的右边,相应的Ex_SDI 项目的菜单资源被显示出来。
② 单击“查看”菜单,则在该菜单的最后一项,Visual C++为用户留出了一个空位置,用来输入新的菜单项。
实验九菜单、工具栏和状态栏一、实验目的1、熟悉菜单的创建与使用。
2、掌握状态栏的创建与使用。
3、掌握工具栏的创建与使用。
二、实验内容与步骤1、菜单的使用编写程序,用菜单命令调用对话框,在对话框中计算三门课的平均成绩。
3、活动工具栏的应用在应用程序中,使用活动工具条可以方便用户操作,使应用程序中的命令功能形象地显示。
本实例通过创建包含活动工具栏的单文档程序,学习工具栏的创建方法,CToolBar类的成员函数的使用等知识。
【实验步骤】(1)建立Application利用AppWizard创建一个单文档应用程序Exam4_1。
(2)添加资源①执行菜单:插入→资源,在弹出的资源对话框中选中Toolbar,然后单击右侧的新建。
②在新建工具条上新建三个位图图形,并修改它们的属性值:三个工具按钮的ID分别设为:ID_REDTOOL、ID_GREENTOOL、ID_BLUETOOL。
新工具栏的ID为:IDR_COLORTOOL(3)增加菜单命令项①打开菜单编辑器,在查看菜单下添加一项“显示颜色工具”,其ID值设为:ID_COLORTOOLVIEW。
②在“建立类向导”对话框中,为菜单命令加入消息映射,消息处理函数为:OnColorToolView()。
(4)修改程序代码①在CMainFrm.h中添加CToolBar的保护类protected: CToolBar *m_pColor;②在MainFrame.cpp文件中对m_pColor类初始化:CMainFrame::CMainFrame():m_pColor(0){}③修改响应菜单命令的程序代码:void CMainFrame::OnColortoolview(){if (0==m_pColor){ m_pColor=new CToolBar;if (0==m_pColor->Create(this)){ MessageBox("创建失败");return;}m_pColor->LoadToolBar(IDR_COLORTOOLBAR);m_pColor->EnableDocking(CBRS_ALIGN_ANY);DockControlBar(m_pColor);}elseif(m_pColor->IsWindowVisible()==TRUE)ShowControlBar(m_pColor,FALSE,FALSE);elseShowControlBar(m_pColor,TRUE,TRUE);}。
unigui状态栏的用法-回复unigui是一款基于Delphi的Web应用开发框架,它为开发人员提供了丰富的组件和功能,用于创建功能强大、易于维护的Web应用程序。
其中一个重要的组件是状态栏(Status Bar),它可以用于显示应用程序的状态信息以及提供交互功能。
本文将一步一步回答关于unigui状态栏的用法。
第一步:创建状态栏组件在unigui中,创建状态栏非常简单。
首先,在你的Web应用程序的主界面上添加一个TUniStatusBar组件。
你可以通过拖放的方式将其添加到Web Form上。
状态栏组件可以在工具栏(Toolbar)上或者独立存在。
第二步:设置状态栏属性在创建状态栏组件后,你可以通过设置属性来定制它的外观和行为。
以下是一些常用的状态栏属性:1. Panels:这是状态栏的一个重要属性,其中包含了一个或多个称为面板(Panel)的子项。
每个面板都可以显示不同的文本和图标。
你可以通过面板的属性来设置文本、图标和对齐方式等。
2. AutoSize:这个属性决定了状态栏的大小是否自动适应内容的宽度。
当设置为True时,状态栏的宽度会根据面板内容的宽度自动调整。
当设置为False时,状态栏的宽度可以手动调整。
3. SimpleText:这个属性用于设置整个状态栏的文本。
如果设置了SimpleText属性,那么所有面板的文本内容都会被替换为SimpleText的值。
第三步:在面板上显示文本和图标在状态栏组件的面板上显示文本和图标是状态栏的核心功能之一。
你可以通过设置每个面板的Text属性来显示文本,通过设置ImageIndex属性来显示图标。
以下是一些常用的面板属性:1. Text:这个属性用于设置面板的文本内容。
你可以在这里输入任意的文本,包括应用程序的状态信息、提示信息等。
2. ImageIndex:这个属性用于设置面板的图标。
你可以在状态栏组件的图像列表(ImageList)中设置和管理图标,并且通过设置ImageIndex 属性来显示不同的图标。
实践——为窗口添加菜单条和工具条
步骤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,也可以给工具栏中的某个按钮添加事件处理。