首页 > 编程知识 正文

js添加类名,类文件解析

时间:2023-05-05 21:03:36 阅读:17239 作者:1393

QAction类提供抽象的用户界面操作,这些操作可以位于窗口部件中。

一个APP应用程序可以从菜单、工具栏按钮和键盘快捷键中调用常用命令。 因为用户希望所有命令都以相同的方式执行,而不管命令使用的用户界面如何,

在这种情况下,使用action表示这些命令非常有用。

可以将Actions添加到菜单和工具栏中,并自动保持菜单和工具栏的同步。 例如,在文字处理程序中,如果用户在工具栏上按下Bold按钮,则菜单中的Bold选项会自动选中。

虽然可以将Actions创建为独立对象,但也可以在创建菜单时创建的QMenu类提供了创建适合用作菜单项的Actions的非常简单的方法。

q操作可以包括图标、菜单文本、快捷键、状态文本、“假设”文本和工具。 这些内容大部分都可以在构造函数中设置。 也可以在setIcon ()、setIconText ()、setShortCut ()、setStatusTip ()、setWhatsThis和SetToolTip () )函数中单独设置。 关于菜单项,我们还没有

setFont ()分别设置字体。

可以使用q构件:3360 addaction ()或qgraphicswidget 33603360 addaction )函数将Actions添加到窗口部件中。 只有在将Actions添加到窗口部件之后,Actions才可用。 如果actions快捷键是全局的,我们也必须首先将actions添加到窗口部件中。

q创建操作后,必须将其添加到相关菜单和工具栏中,并链接到实现相应操作功能的槽函数。 例如:

open act=newq action (qi con (:/images/open.png )、tr )、this ); 开放act-set shortcut s (qkey sequence :3360 open; 开放存取状态tip (开放存取文件(tr ); 连接(open act,signal (触发)、this,slot (打开) ); 文件菜单添加(open act ); 文件工具附加(open act ); 我们建议将actions创建为使用那些窗口的孩子。 在大多数情况下,actions是APP应用程序主窗口的孩子。

类的枚举成员变量:

此枚举类型主要用于调用QAction:activate () )函数。 q看看QAction:activate ()函数的原型。

综上所述,我们使用该函数发送信号,参数event指示要发送的信号的类型。 基于action的小部件可以自己发送信号,但也可以显式调用此API发送信号。

由于Mac OS X系统的某些特性,Qt会自动对几个菜单项进行排序。 例如,如果菜单为“关于”、“设置”、“首选项”、“退出”等,则可以分配角色。 Qt将根据这些角色正确排列菜单项的顺序。 方法是设置QAction:menuRole属性,如AboutRole、PreferencesRole、QuitRole或NoRole。 例如,可以将“设置”菜单项用作Mac OS X的应用程序:3360首选项。

q枚举QAction:MenuRole类型主要介绍了在Mac OS X系统上,操作如何移动到APP应用程序菜单。 此值仅对菜单上的直接菜单有效,而对子菜单无效。 例如,如果存在包含子菜单的“File”菜单,则在子菜单中设置这些值将不会起作用。

此优先级用于指示操作在用户界面中的优先级。 例如,如果qxdsg工具栏设置为Qt :3360 toolbuttontextbesideicon模式,则低优先级的操作不会显示标签。

示例

(1)使用Action构建工具栏和菜单栏

主窗口:3360主窗口(q构件parent ) : qmainwindow (parent ) ) { initMenu; initToolBar (; } void main window :3360 init menu ((/*初始化文件菜单)/Filemenu=newqmenu ) tr ) ' File ',this ); fileopen action=newq action (' open . ',this ); 文件保存操作=newq操作(save )。

..", this); fileMenu->addAction(fileOpenAction); fileMenu->addAction(fileSaveAction); /* 初始化Edit菜单 */ editMenu = new QMenu("&Edit"); editCopyAction = editMenu->addAction("&Copy"); editCutAction = editMenu->addAction("&Cut"); /* 将菜单添加到菜单栏上 */ QMenuBar *menuBar = this->menuBar(); menuBar->addMenu(fileMenu); menuBar->addMenu(editMenu);}void MainWindow::initToolBar(){ /* 初始化FileToolBar */ fileToolBar = new QToolBar(this); fileToolBar->addAction(fileOpenAction); fileToolBar->addAction(fileSaveAction); /* 初始化EditToolBar */ editToolBar = new QToolBar(this); editToolBar->addAction(editCopyAction); editToolBar->addAction(editCutAction); /* 将工具添加到工具栏上 */ addToolBar(Qt::TopToolBarArea, fileToolBar); addToolBar(Qt::TopToolBarArea, editToolBar);}MainWindow::~MainWindow(){ }

(2)测试QAction::activate(QAction::ActionEvent)

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ initMenu(); initToolBar(); initConnect();}void MainWindow::initConnect(){ connect(fileOpenAction, SIGNAL(triggered()), this, SLOT(sendActivate())); connect(fileSaveAction, SIGNAL(hovered()), this, SLOT(ansHovered()));}void MainWindow::sendActivate(){ /* 这将会导致fileSaveAction发送信号QAction::hovered() */ fileSaveAction->activate(QAction::Hover);}void MainWindow::ansHovered(){ qDebug("Ans!!!");}

运行结果:

(3)测试QAction::Priority

void MainWindow::initMenu(){ /* 初始化File菜单 */ fileMenu = new QMenu(tr("File"), this); fileOpenAction = new QAction("&Open...", this); fileSaveAction = new QAction("&Save...", this); fileMenu->addAction(fileOpenAction); fileMenu->addAction(fileSaveAction); /* 初始化Edit菜单 */ editMenu = new QMenu("&Edit"); editCopyAction = editMenu->addAction("&Copy"); editCutAction = editMenu->addAction(QIcon(":/cut.PNG"), "&Cut"); //editCutAction->setPriority(QAction::LowPriority); /* 将菜单添加到菜单栏上 */ QMenuBar *menuBar = this->menuBar(); menuBar->addMenu(fileMenu); menuBar->addMenu(editMenu);}void MainWindow::initToolBar(){ /* 初始化FileToolBar */ fileToolBar = new QToolBar(this); fileToolBar->addAction(fileOpenAction); fileToolBar->addAction(fileSaveAction); /* 初始化EditToolBar */ editToolBar = new QToolBar(this); editToolBar->addAction(editCopyAction); editToolBar->addAction(editCutAction); /* 将工具添加到工具栏上 */ addToolBar(Qt::TopToolBarArea, fileToolBar); addToolBar(Qt::TopToolBarArea, editToolBar); /* 设置工具栏为QT::ToolButtonTextBesideIcon */ this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);}

此时注释掉了设置优先级的语句,图标和文字均能显示出来,效果如下图:

/* 初始化Edit菜单 */ editMenu = new QMenu("&Edit"); editCopyAction = editMenu->addAction("&Copy"); editCutAction = editMenu->addAction(QIcon(":/cut.PNG"), "&Cut"); editCutAction->setPriority(QAction::LowPriority);

运行效果如下:

 

参考:

https://www.yuque.com/docs/share/8c9cd912-4fbc-4656-82b7-9815f9b199d0

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。