void ListWidget::contextMenuEvent ( QContextMenuEvent * event ) { QMenu* popMenu = new QMenu(this 那么实现的代码应该是这样的: void ListWidget::contextMenuEvent ( QContextMenuEvent * event ) { QMenu* popMenu = new QMenu(this); popMenu->addAction(new QAction("添加", this)); popMenu->addAction(new QAction void ListWidget::contextMenuEvent ( QContextMenuEvent * event ) { QMenu* popMenu = new QMenu(this 所以最终的代码是: void ListWidget::contextMenuEvent ( QContextMenuEvent * event ) { QMenu* popMenu = new
endif // MAINWINDOW_H MainWindow.cpp: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMenu {color:#E8E8E8;background:#4D4D4D;margin:2px;}\ QMenu::item{padding:3px 20px 3px 20px ;}\ QMenu::indicator{width:13px;height:13px;}\ QMenu::item:selected{color :#757575;}"; QMenu menu; menu.setStyleSheet(qss); //可以给菜单设置样式 QModelIndex curIndex = ;}\ QMenu::indicator{width:13px;height:13px;}\ QMenu::item:selected{color
并通过 QMenu 提供的 addMenu() 函数 来添加菜单。 创建菜单 QMenu* menu1 = new QMenu("文件"); QMenu* menu2 = new QMenu("编辑"); QMenu* menu3 = new QMenu QMenuBar* menuBar = new QMenuBar(); this->setMenuBar(menuBar); QMenu* menuParent = new QMenu("父菜单") ; QMenu* menuChild = new QMenu("子菜单"); menuBar->addMenu(menuParent); menuParent->addMenu(menuChild); * menuChild2 = new QMenu("子菜单2"); menuChild->addMenu(menuChild2); 六、添加图标 按照之前设置图标的方法编写,代码如下: 如果给 QMenu
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMenuBar>#include <QMenu>#include <QToolBar << "x pos = "<< pos.x() << "y pos = " << pos.y() << std::endl; Q_UNUSED(pos); // 新建Menu菜单 <em>QMenu</em> *ptr = new <em>QMenu</em>(this); // 添加Actions创建菜单项 ptr->addAction(NewAction); ptr->addAction(InsertAction << "x pos = "<< pos.x() << "y pos = " << pos.y() << std::endl; Q_UNUSED(pos); // 新建Menu菜单 <em>QMenu</em> *ptr = new <em>QMenu</em>(this); // 添加Actions创建菜单项 ptr->addAction(NewAction); ptr->addAction(InsertAction
QSpinBox的向上箭头 箭头相关 ::up-button QSpinBox的向上按钮 箭头相关 ::left-arrow QScrollBar的左箭头 箭头相关 ::right-arrow QMenu QProgressBar的进度块 其他 ::drop-down QComboBox的下拉按钮 其他 ::indicator QAbstractItemView、QCheckBox、 QRadioButton、 QMenu ::float-button QDockWidget的浮动按钮 选项卡栏,选项卡部件,可停靠窗口 ::title QDockWidget或QGroupBox的标题 菜单相关 ::scroller QMenu 或QTabBar的滚动条 菜单相关 ::separator QMenu或QMainWndow中的分隔符 菜单相关 ::tearoff QMenu的可分离指示器 菜单相关 ::item QAbstractITtemView 、QMenuBar、 QMenu、 QStatusBar 中的一个项 菜单相关 ::icon QAbstractItemView或QMenu的图标 菜单相关 ::cmenu-arrow 带有菜单的QToolButton
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QMenuBar> #include <QMenu> #include <QToolBar (Qt::NoContextMenu); // 创建基础顶部菜单 QMenuBar *bar = menuBar(); this->setMenuBar(bar); QMenu "x pos = "<< pos.x() << "y pos = " << pos.y() << std::endl; Q_UNUSED(pos); // 新建Menu菜单 <em>QMenu</em> (Qt::NoContextMenu); // 创建基础顶部菜单 QMenuBar *bar = menuBar(); this->setMenuBar(bar); <em>QMenu</em> "x pos = "<< pos.x() << "y pos = " << pos.y() << std::endl; Q_UNUSED(pos); // 新建Menu菜单 <em>QMenu</em>
include "mainwindow.h" //创建菜单栏,工具栏,状态栏应当包含的头文件 #include <QMenuBar> #include <QMenu setStatusBar(status_bar); //设置为MainWindow的状态栏 //创建菜单 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
*menuFile = new QMenu("文件(&F)", menubar); // &F表示快捷键Alt+F QMenu *menuEdit = new QMenu("编辑(&E)", menubar); // &E表示快捷键Alt+E QMenu *menuBuild = new QMenu("构建(&B)", menubar); // &B表示快捷键Alt+B QMenu *menuHelp = new QMenu("帮助(&H)", menubar); // &H表示快捷键Alt+H // 第三步:将菜单添加到菜单栏中(添加顺序决定菜单显示顺序) 创建菜单 QMenu *menuFile = new QMenu("文件(&F)", menubar); QMenu *menuEdit = new QMenu("编辑(&E)", menubar ); QMenu *menuHelp = new QMenu("帮助(&H)", menubar); menubar->addMenu(menuFile); menubar->addMenu
mainwindow.h" //创建菜单栏,工具栏,状态栏,文本框,浮动窗口应当包含的头文件 #include <QMenuBar> #include <QMenu this); //创建文本框 this->setCentralWidget(text_edit); //设置文本框为中间控件 //创建菜单 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
1.2、 菜单栏类创建菜单栏 在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。 每个QMenu对象都可以包含一个或多个QAction对象或级联的QMenu对象。 在设计菜单系统时使用的一些重要方法如下表所示: 通个示例了解QMenuBar、QMenu和QAction菜单栏类,示例效果如下所示: 示例中,顶层窗口必须是QMainWindow对象,才可以引用QMenuBar 单击任何QAction按钮时,QMenu对象都会发射triggered信号。
创建菜单栏 QMenuBar *bar = menuBar(); this->setMenuBar(bar); // 将菜单栏放入主窗口 QMenu --------------- // 创建菜单栏 QMenuBar *bar = menuBar(); this->setMenuBar(bar); //将菜单栏放入主窗口 QMenu *childMenu = new QMenu(); QAction *set_file = new QAction(childMenu); set_file->setText *pMenu = new QMenu(this); QAction *pNewTask = new QAction(tr("新建"), this); QAction *pEditTask NoContextMenu); // 创建基础顶部菜单并让其隐藏 QMenuBar *bar = menuBar(); this->setMenuBar(bar); QMenu
创建菜单栏 QMenuBar *bar = menuBar(); this->setMenuBar(bar); // 将菜单栏放入主窗口 QMenu -------------------// 创建菜单栏 QMenuBar *bar = menuBar(); this->setMenuBar(bar); //将菜单栏放入主窗口 QMenu (QIcon(":/image/2.ico")); EditMenu->addAction(option); // 1.1.2 定义Option配置模式下的子菜单 QMenu *childMenu = new QMenu(); QAction *set_file = new QAction(childMenu); set_file->setText( *pMenu = new QMenu(this); QAction *pNewTask = new QAction(tr("新建"), this); QAction *pEditTask
Actions可以作为独立的对象被创建,但是我们也可以在构建菜单的时候创建它们;QMenu类包含了非常简便的方法用于创建适合用作菜单项的actions。 parent) { initMenu(); initToolBar(); } void MainWindow::initMenu() { /* 初始化File菜单 */ fileMenu = new QMenu ; } 运行结果: (3)测试QAction::Priority void MainWindow::initMenu() { /* 初始化File菜单 */ fileMenu = new QMenu Mac OS X:在Mac OS X上,如果你将一个widget添加到应用程序菜单栏的某个菜单上,那么该widget可以显示出来,并且可以实现功能,只是有一些限制: 1、该widget的父对象不再是QMenu *parent) { new QLabel(“test”,this); } }; int main(int argc, char *argv[]) { popupMenu = new QMenu
qtreewidget的头部 //设置右键菜单选项 //允许右键菜单 ui->treeWidget_2->setContextMenuPolicy(Qt::CustomContextMenu); //设置菜单 QMenu *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 topItem1->addChild(item2); //开启右键菜单属性 ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu); QMenu *myMenu = new QMenu(ui->treeWidget); QAction *add = myMenu->addAction("添加"); QAction *del = myMenu->
QtCore import Slotfrom PySide6.QtGui import QAction, QIconfrom PySide6.QtWidgets import QApplication, QMenu ubuntu-plain-icon.svg')) tray.setVisible(True) tray.setToolTip('a tray app with ubuntu icon') menu = QMenu
需要用到两个类QMenu和QAction,例如我的Demo程序界面如下: ? public: QtGuiApplication4(QWidget *parent = Q_NULLPTR); private: Ui::QtGuiApplication4Class ui; QMenu *fileMenu; QMenu *editMenu; QAction *myAc1; QAction *myAc2; QAction *myAc3; private slots:
.关闭事件) #ifndef SYSTEMTRAYICON_H #define SYSTEMTRAYICON_H #include <QMainWindow> #include <QMenu void CreatTrayMenu(); void CreatTrayIcon(); QSystemTrayIcon *myTrayIcon; QMenu showNormal())); this->connect(quitAction,SIGNAL(triggered()),qApp,SLOT(quit())); myMenu = new QMenu
//菜单 QMenu* editMenu = ui->menuBar->addMenu("编辑(&E)"); QAction *action_copy = editMenu->addAction ; // 工具栏添加部件 QToolButton* toolBtn = new QToolButton(this); toolBtn->setText("颜色"); QMenu * colorMenu = new QMenu(this); colorMenu->addAction("红色"); colorMenu->addAction("绿色"); toolBtn createWidget(QWidget *parent) { //是否继承自菜单或者工具栏 //是则创建父部件的子部件并返回子部件 if(parent->inherits("QMenu
2、创建QMenu传递小部件(上下文小部件)作为其父对象的对象。 3、用动作填充菜单对象。 4、使用.globalPos()作为参数启动菜单的对象。 contextMenuEvent(self, event): # Creating a menu object with the central widget as parent menu = QMenu
创建一个菜单栏 QMenu *menu = new QMenu(this); 添加一个菜单项目(Edit) editMenu = menuBar()->addMenu(tr("&Edit")); 为