一个主窗口最多只有一个菜单栏,位于主窗口顶部、主窗口标题栏下面。 菜单栏中包含菜单,菜单中包含菜单项 工具栏本质上就是把菜单中一些比较常用的选项直接放到工具栏里,直接点工具栏中的按钮就能快速生效。...菜单栏(QMenuBar) -> 菜单(QMenu) -> 菜单项(QAction) 上面通过图形化的方式还是不够方便,下面通过代码来创建 二、在菜单栏中添加菜单 并且 创建菜单项 创建菜单,...而 QMenu 是子菜单,图标和文本都是可以显示的 1.2 综合案例 在窗口上创建一个菜单栏,在菜单栏中添加一些菜单,在某一个菜单中添加一些菜单项。...); 如果一个 QAction 既是 QMenu 的子元素,又是 QToolBar 的子元素,那么在释放的时候是否会重复 delete 呢?...一般位于主窗口的最底部,一个窗口中最多只能有一个状态栏。在 Qt 中,状态栏是通过 QStatusBar 类来实现的。
显然,在空白处的右键菜单上面不应该出现"修改"选项,不然修改的是那一个??? 问题的关键就是判定调用右键菜单时,鼠标右击的位置处是不是一个Item。...new QMenu(this); popMenu->addAction(new QAction("添加", this)); popMenu->addAction(new QAction...)); } popMenu->exec(QCursor::pos()); // 菜单出现的位置为当前鼠标的位置 } 如何才能判定鼠标右击时,是否是在一个Item上面呢?...QMenu(this); popMenu->addAction(new QAction("添加", this)); popMenu->addAction(new QAction("删除"...记得在自己的代码总要把QAction连接到处理的slot上。上面的代码菜单是没有功能的。
在上一篇博文《C/C++ Qt ListWidget 列表框组件应用》中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在ListWidget组件中的任意一个子项下右键...为了增加菜单,我们首先需要在程序全局增加QAction其中每一个QAction则代表一个菜单选项指针。...// 全局下设置增加菜单QAction *NewAction;QAction *InsertAction;QAction *DeleteAction;其次则是通过代码的方式在程序中动态创建一个基础的右键菜单...); // 添加一个分割线 ptr->addSeparator(); ptr->addAction(DeleteAction); // 在鼠标光标位置显示右键快捷菜单 ptr...); // 添加一个分割线 ptr->addSeparator(); ptr->addAction(DeleteAction); // 在鼠标光标位置显示右键快捷菜单 ptr
例如,在一个字处理软件中,如果用户在工具栏中按下了Bold按钮,那么菜单中的Bold选项就会自动被选中。...QAction可以包括一个图标,菜单文本,快捷键,状态文本,”What`s This”文本以及一个tooltip。这些内容的绝大部分都可以在构造函数中设置。...在某些情况下将QAction分组是十分有用的。...addAction(centerAction)); actionMenu->addAction(actionGroup->addAction(justifyAction)); 可以使用下面的槽函数验证默认情况下,一次只有一个...Mac OS X:在Mac OS X上,如果你将一个widget添加到应用程序菜单栏的某个菜单上,那么该widget可以显示出来,并且可以实现功能,只是有一些限制: 1、该widget的父对象不再是QMenu
*file_menu = new QMenu("文件(&F)",menu_bar); QMenu *edit_menu = new QMenu("编辑(&E)",menu_bar);...QMenu *help_menu = new QMenu("帮助(&H)",menu_bar); //创建动作 QAction *new_action = new QAction...("新建(&N)"); QAction *open_action = new QAction("打开(&O)"); QAction *save_action = new QAction(...("打开一个文件或项目"); save_action->setStatusTip("保存"); //添加动作到新建菜单,QAction就会自动变成子菜单 file_menu...我们也看到了QAction的强大,它代表的是一个动作,它可以被添加到菜单中,也可以被添加到工具栏。还可以设置动作在状态栏的提示语句。
在上一篇博文《C/C++ Qt ListWidget 列表框组件应用》中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在ListWidget组件中的任意一个子项下右键...为了增加菜单,我们首先需要在程序全局增加QAction其中每一个QAction则代表一个菜单选项指针。...// 全局下设置增加菜单 QAction *NewAction; QAction *InsertAction; QAction *DeleteAction; 其次则是通过代码的方式在程序中动态创建一个基础的右键菜单...); // 添加一个分割线 ptr->addSeparator(); ptr->addAction(DeleteAction); // 在鼠标光标位置显示右键快捷菜单...); // 添加一个分割线 ptr->addSeparator(); ptr->addAction(DeleteAction); // 在鼠标光标位置显示右键快捷菜单
QToolBar组件在开发中我遇到了以下这些功能,基本上可以应对大部分开发需求了,这里就做一个总结。...首先来看一个简单的生成案例,如下代码中我们通过属性setAllowedAreas()可以实现将ToolBar组件放置到上下左右四个不同的方位上面....,如下代码则是定义了一个二级菜单。...*childMenu = new QMenu(); QAction *set_file = new QAction(childMenu); set_file->setText...*pMenu = new QMenu(this); QAction *pNewTask = new QAction(tr("新建"), this); QAction *pEditTask
在Qt中,使用QDockWidget来创建浮动窗口。而Center Widget则可以是任何能放到中间区域的控件。下面直接上代码来进行说明。...*file_menu = new QMenu("文件(&F)",menu_bar); QMenu *edit_menu = new QMenu("编辑(&E)",menu_bar);...QMenu *help_menu = new QMenu("帮助(&H)",menu_bar); //创建动作 QAction *new_action = new QAction...("打开一个文件或项目"); save_action->setStatusTip("保存"); //添加动作到新建菜单,QAction就会自动变成子菜单 file_menu...凡是可以add到主窗口的,那么可以在主窗口上有多个。例如:工具栏,浮动窗口。 运行结果如下: ? 上面这个代码稍加改造就能成为一个简单的记事本。
1.2、 菜单栏类创建菜单栏 在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。...每个QMenu对象都可以包含一个或多个QAction对象或级联的QMenu对象。...在设计菜单系统时使用的一些重要方法如下表所示: 通个示例了解QMenuBar、QMenu和QAction菜单栏类,示例效果如下所示: 示例中,顶层窗口必须是QMainWindow对象,才可以引用QMenuBar...单击任何QAction按钮时,QMenu对象都会发射triggered信号。...QApplication(sys.argv) demo = ToolBarDemo() demo.show() sys.exit(app.exec_()) 3、状态栏 MainWindow对象在底部保留有一个水平条
第一次调用这个方法创建了一个状态栏。随后方法返回状态栏对象。然后用showMessage()方法在状态栏上显示一些信息。 菜单栏 菜单栏是GUI应用的常规组成部分。...('Exit application') QAction是一个用于菜单栏、工具栏或自定义快捷键的抽象动作行为。...使用创建新菜单QMenu。 impMenu = QMenu('Import', self) 将一个动作添加到子菜单中addAction()。...impAct = QAction('Import mail', self) impMenu.addAction(impAct) Context menu(弹出菜单) 上下文菜单(也称为弹出菜单)是在某些上下文下显示的命令列表...例如,在Opera网页浏览器中,当我们右键单击网页时,我们会得到一个上下文菜单。在这里,我们可以重新加载页面,返回或查看页面源。如果我们右键单击工具栏,我们将获得另一个用于管理工具栏的上下文菜单。
图片QToolBar组件在开发中我遇到了以下这些功能,基本上可以应对大部分开发需求了,这里就做一个总结。...顶部工具栏ToolBar组件的定义有多种方式,我们可以直接通过代码生成,也可以使用图形界面UI拖拽实现,但使用代码时间则更加灵活一些,ToolBar组件可以表现出多种形态.首先来看一个简单的生成案例,如下代码中我们通过属性...,如下代码则是定义了一个二级菜单。...*childMenu = new QMenu(); QAction *set_file = new QAction(childMenu); set_file->setText(...*pMenu = new QMenu(this); QAction *pNewTask = new QAction(tr("新建"), this); QAction *pEditTask
QMainWindow 是一个为用户提供主窗口程序的类,继承自 QWidget 类,并且提供了一个预定义的布局。...* menu1 = new QMenu("文件"); QMenu* menu2 = new QMenu("保存"); QMenu* menu3 = new QMenu("编辑...创建菜单项 在 Qt 中,并没有专⻔的菜单项类,可以通过 QAction 类,抽象出公共的动作。如在菜单中添加菜单项. QAction 可以给菜单栏使⽤, 也可以给⼯具栏使⽤....* menu = new QMenu("文件"); menubar->addMenu(menu); // 创建菜单项 QAction* action1...创建工具栏 调⽤ QMainWindow类 的 addToolBar() 函数来创建⼯具栏,每增加⼀个⼯具栏都需要调⽤⼀次该函数。
http://blog.csdn.net/qivan/article/details/7506306 托盘图标,一个自己脑子出现很久的词,可惜自己都没动手去实现。...那么多功能,其实就一个类就搞定了,那就是QSystemTrayIcon 头文件(主要 1.声明菜单相关动作 2.声明系统托盘对象,以及相关托盘槽函数 3.关闭事件) #ifndef SYSTEMTRAYICON_H...#define SYSTEMTRAYICON_H #include #include QMenu> #include <QSystemTrayIcon...void CreatTrayMenu(); void CreatTrayIcon(); QSystemTrayIcon *myTrayIcon; QMenu... *myMenu; QAction *miniSizeAction; QAction *maxSizeAction; QAction *restoreWinAction
addWidget(QWidget *widget) 在工具栏中添加一个自定义小部件。...快捷键: 每个菜单项可以关联一个快捷键,用户可以通过键盘快捷键来触发相应的操作。分组和分割线: 菜单栏支持在菜单项之间添加分组和分割线,用于更好地区分不同的功能模块。...1.3 使用菜单组件通常情况下ToolBar与MenuBar两者会配合使用,在5.14.2版本中,窗体创建后会默认包含一个MenuBar组件,对于老版本的Qt则会自带一个ToolBar组件,ToolBar...*childMenu = new QMenu(); QAction *set_file = new QAction(childMenu); set_file->setText("设置文件内容...*pMenu = new QMenu(this); QAction *pNewTask = new QAction(tr("新建菜单"), this); QAction *pEditTask
菜单栏、工具栏、状态栏 主窗口框架(QMainWindow)拥有自己的布局,包括以下组件: 菜单栏 菜单栏包含了一个下拉菜单项的列表,这些菜单项通过QAction动作类实现。...状态栏 状态栏用于显示程序的一些状态信息,在主窗口的最底下,一个主窗口只能拥有一个状态栏。 菜单栏、工具栏、状态栏 代码添加示例。...//菜单 QMenu* editMenu = ui->menuBar->addMenu("编辑(&E)"); QAction *action_copy = editMenu->addAction...); QAction* action_R = group->addAction("右对齐(&R)"); QAction* action_C = group->addAction("居中对齐...QWidgetAction的类, 并重写createWidget方法,在该方法中自定义部件设置。
QtreeWidget简介 QtreeWidget会有一个默认的 columncount的property。...< "互联网公司" << "食品公司"; ui->treeWidget_2->setHeaderLabels(strList); //自定义qtreewidget的头部 设置右键菜单并实现添加一个子项删除一个子项的功能...*myMenu = new QMenu(ui->treeWidget_2); QAction *add = myMenu->addAction("添加"); QAction *del = myMenu...*myMenu = new QMenu(ui->treeWidget_2); QAction *add = myMenu->addAction("添加"); QAction *del = myMenu...*myMenu = new QMenu(ui->treeWidget); QAction *add = myMenu->addAction("添加"); QAction *del = myMenu->
Qt添加菜单有两种方法,一是用代码直接手动添加,二是在Qtdesigner中在界面上直接添加。 先介绍用代码如何添加。 需要用到两个类QMenu和QAction,例如我的Demo程序界面如下: ?...myAc1); //工具条 connect(myAc1, SIGNAL(triggered()), this, SLOT(pop1())); myAc2 = new QAction...public: QtGuiApplication4(QWidget *parent = Q_NULLPTR); private: Ui::QtGuiApplication4Class ui; QMenu...*fileMenu; QMenu *editMenu; QAction *myAc1; QAction *myAc2; QAction *myAc3; private slots:...void pop1(); void pop2(); void pop3(); }; 在VS2010中建立Qt工程但是代码中总是出现红色波浪线。
mainwindow.h: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QMenu> #include QAction> #include...*file; QMenu *edit; QMenu *style; QMenu *insert;//插入菜单 QMenu *search;//查找菜单 QMenu...new.png"),tr("新建文件"),this); newFile->setShortcut(tr("Ctrl+N")); newFile->setStatusTip(tr("新建一个文件...>setShortcut(tr("Ctrl+O")); openFile->setStatusTip(tr("打开一个文件")); //保存文件 save = new QAction...= textEdit->find(str,QTextDocument::FindBackward); if(isfind){ label->setText(tr("查找目标在,
toggleViewAction() 返回一个切换工具栏可见性的动作。 addWidget(QWidget *widget) 在工具栏中添加一个自定义小部件。...addWidget(QWidget *widget) 在工具栏中添加一个自定义小部件。 widgetForAction(QAction *action) const 返回与给定动作相关联的小部件。...addMenu(const QString &title) 添加一个具有给定标题的菜单,并返回一个指向新菜单的指针。 addMenu(QMenu *menu) 添加给定的菜单。...addSeparator() 在菜单栏上添加一个分隔符。 addActions(QListQAction*> actions) 添加给定的动作列表到菜单栏。...*pMenu = new QMenu(this); QAction *pNewTask = new QAction(tr("新建菜单"), this); QAction *pEditTask
创建菜单示例: QMenuBar mb= menuBar(); //返回菜单栏,如果菜单栏没有创建,则返回一个空的菜单栏 QMenu*...menu= new QMenu("File(&F)", QMenuBar ); //(&F):表示添加alt+F键快捷键打开这个菜单 QAction* action= new...QAction("New(N)", QMenu); //(N):表示添加N键快捷键 action-> setShortcut(QKeySequence (Qt::CTRL + Qt...工具栏使用 在Qt中,通过QToolBar类来创建工具栏,然后通过QAction类来创建工具项,如下图所示: ?...position); //可以在编辑框的开始或者末尾添加一个action,方便我们操作,一个完美的搜索框顿时出现。
领取专属 10元无门槛券
手把手带您无忧上云