(二十二)QAction系列详解

Qt中QAction类的简单使用 Qt中QAction类的简单使用QAction类是Qt中用于创建菜单项和工具栏按钮的类。下面我们来看一下如何使用QAction类。 将QAction添加到菜单或者工具栏中 连接QAction的信号槽函数 实现QAction的信号槽函数 完整的代码如下: 阅读详情

转自:http://blog.youkuaiyun.com/chenlong12580/article/details/8872035

作者:chenlong12580

 QAction系列详解

一、QAction类详解

【详细描述】

        QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。
        应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面,
这个时候使用action来表示这些命令就显得十分有用。
         Actions可以被添加到菜单和工具栏中,并且可以自动保持在菜单和工具栏中的同步。例如,在一个字处理软件中,如果用户在工具栏中按下了Bold按钮,那么菜单中的Bold选项就会自动被选中。
         Actions可以作为独立的对象被创建,但是我们也可以在构建菜单的时候创建它们;QMenu类包含了非常简便的方法用于创建适合用作菜单项的actions。
       QAction可以包括一个图标,菜单文本,快捷键,状态文本,"What`s This"文本以及一个tooltip。这些内容的绝大部分都可以在构造函数中设置。也可以通过setIcon(),setIconText(),setShortCut(),setStatusTip(),setWhatsThis和SetToolTip()函数分别设置。对于菜单项,我们还可以通过
setFont()单独为它们设置font。
       可以通过QWidget::addAction()或者是QGraphicsWidget::addAction()函数将Actions添加到窗口部件上。注意,只有将Actions添加到窗口部件上之后,我们才可以使用这些actions;当actions的快捷键是全局的时候,我们也必须先将actions添加到窗口部件上。
       一旦QAction被创建了,那么就必须将它添加到相关的菜单和工具栏上,然后将它们链接到实现相应action功能的槽函数上。例如:

openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
openAct->setShortcuts(QKeySequence::Open);
openAct->setStatusTip(tr("Open an existing file"));
connect(openAct, SIGNAL(triggered()), this, SLOT(open()));

fileMenu->addAction(openAct);
fileToolBar->addAction(openAct);

         我们建议将actions作为使用它们的窗口的孩子创建。在绝大多数情况下,actions都是应用程序主窗口的孩子。

       类的枚举成员变量:


 这个枚举类型主要是在调用QAction::activate()函数的时候被使用到。我们来看看QAction::activate()函数的原型:


         从上面可以看出,我们使用该函数发射信号,而参数event则指明了发射的信号类型。基于action的widgets可以自己发射信号,然而我们也可以显式的调用本API来发射信号。


        由于Mac OS X系统的一些特性,Qt 会对一些菜单项进行自动排列。比如,如果你的菜单是“关于”、“设置”、“首选项”、“退出”等等,我们可以给它们分配一个角色,Qt 则会根据这些角色对菜单项的顺序作出正确的排列。方法是,设置 QAction::menuRole 属性,例如:AboutRole、PreferencesRole、QuitRole 或者 NoRole。举例

来说,我们可以将“设置”菜单项作为 Mac OS X 的 Application::preferences。

         QAction::MenuRole类型的枚举主要描述了在Mac OS X系统上,action如何移动到应用程序的菜单上。设置这个值只对菜单上的直接菜单有效,对子菜单无效。例如:如果有一个File菜单,该File菜单又包含有子菜单,那么如果你针对子菜单设置这些值,那么这些值永远不会起作用。


           该优先级用于表明action在用户界面上的优先级。例如,当你的工具栏设置了Qt::ToolButtonTextBesideIcon模式,那么低优先级的actions将不会显示出标签。

【示例】

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

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    initMenu();
    initToolBar();
}
 
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("&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);
运行效果如下 :


二、QActionGroup类详解

【详细描述】

        QActionGroup类将actions分组。
       在某些情况下将QAction分组是十分有用的。例如,如果你有一个Left Align的action,一个Right Align的action,一个Justify的action,
以及一个Center action,在统一时刻所有这些actions只能有一个被激活。一种简便的做法就是将这些actions以分组的方式组织。
下面是一个示例:

alignmentGroup = new QActionGroup(this);
alignmentGroup->addAction(leftAlignAct);
alignmentGroup->addAction(rightAlignAct);
alignmentGroup->addAction(justifyAct);
alignmentGroup->addAction(centerAct);
leftAlignAct->setChecked(true);

        在上面的示例中,我们创建了一个action组。由于action group默认是互斥的,因此在同一时刻只有一个会被选中。
        当组内的某个action被选中的时候,QActionGroup就会发射triggered()信号。通常情况下,组内的每个action发射自己的triggered()信号。
        正如上面提到的,action group默认是互斥的;它确保在同一时刻只有一个action会被选中。如果你想创建一个action group而不想时它们是互斥关系,那么你可以通过调用setExclusive(false)来关闭互斥关系。
        可以使用addAction()函数将action添加到action group中,然而更常见的做法是在创建action的时候指定一个group;这确保了这些actions具有同一个父亲。可以通过在group中添加分割线使得各个action分开显示,可以使用QAction的setSeparator()添加分割线。通常使用QWidget::addActions()函数将action group添加到窗口部件上。

【示例】

    /* 初始化Action菜单 */
    actionMenu = new QMenu("Action");
    leftAction = new QAction("Left", this);
    rightAction = new QAction("Right", this);
    centerAction = new QAction("Center", this);
    justifyAction = new QAction("Justify", this);
    actionGroup = new QActionGroup(this);
    actionMenu->addAction(actionGroup->addAction(leftAction));
    actionMenu->addAction(actionGroup->addAction(rightAction));
    actionMenu->addAction(actionGroup->addAction(centerAction));
    actionMenu->addAction(actionGroup->addAction(justifyAction));
可以使用下面的槽函数验证默认情况下,一次只有一个action可以被选中。当然也可以设置action的
boolisExclusive () const 

为false,使得一次可以选中多个:

void MainWindow::initConnect()
{
    connect(fileOpenAction, SIGNAL(triggered()),
            this, SLOT(sendActivate()));
    connect(fileSaveAction, SIGNAL(hovered()),
            this, SLOT(ansHovered()));
 
    connect(leftAction, SIGNAL(triggered()),
            this, SLOT(ansTriggered()));
    connect(rightAction, SIGNAL(triggered()),
            this, SLOT(ansTriggered()));
    connect(centerAction, SIGNAL(triggered()),
            this, SLOT(ansTriggered()));
    connect(justifyAction, SIGNAL(triggered()),
            this, SLOT(ansTriggered()));
}
运行效果:



备注:

一、放置到ActionGroup中就默认是exclusive。
二、是否出现选中的标志"小圆点"是通过设置setcheckable完成的。两者并无联系。

关于QActionGroup的使用,我发的一个帖子中有提到,再次感谢网友jdwx1

帖子的连接如下,感兴趣的可以看看QActionGroup只对子菜单生效?

三、QWidgetAction类详解

【详细描述】

        QWidgetAction通过接口方式继承自QAction,用于将自定义的widget插入基于action的容器,例如工具栏。
        出现在应用程序中的绝大多数的actions都是代表了一个菜单项或工具栏中的一个按钮。然而有时候我们也许要复杂一点的widgets。例如,字处理程序工具栏中使用QComboBox实现zoom action,实现不同程度的缩放。QToolBar提供了QToolBar::insertWidget()函数可以十分方便的将单个widget插入到合适的位置。然而,如果你想在多个容器中实现自定义widget的action,那么你就必须实现QWidgetAction的子类。
        如果QWidgetAction添加到QToolBar,那么就会调用QWidgetAction::createWidget()。我们可以重新实现这个函数创建自定义的widget。
        如果将一个action从容器widget上删除,那么就会调用QWidgetAction::deleteWidget(),调用该函数的参数就是上面创建的自定义widget。该函数的默认实现是将widget隐藏,然后使用QObject::deleteLater()删除它。
        如果你只有一个自定义的widget,那么你就可以使用setDefaultWidget()函数将它设置为默认的widget。那么以后当action被添加到QToolBar上时,就会自动将该自定义的widget添加到QToolBar上。如果将仅有一个默认widget的QWidgetAction同时添加到两个工具栏上,那么仅有第一个添加才会显示出来。QWidgetAction接管了默认的widget。
        注意:这取决于widget激活action,例如重新实现鼠标事件处理者,然后调用QAction::trigger()。
Mac OS X:在Mac OS X上,如果你将一个widget添加到应用程序菜单栏的某个菜单上,那么该widget可以显示出来,并且可以实现功能,只是有一些限制:
1、该widget的父对象不再是QMenu而是原生的菜单视图。如果你在其他地方显示菜单(例如作为一个弹出菜单),那么该菜单不会显 示在你期望的地方;
2、针对该widget的Focus/Keyboard处理不再可用;
3、由于Apple的设计,该widget的鼠标轨迹暂时不可用;
4、将triggered()信号链接到打开模态对话框的槽函数上会导致应用程序崩溃(在Mac OS X10.4,这被告知是Apple的一个BUG),一个规避的方法是使用QueuedConnection代替DirecConnection。

【示例】

本示例代码来自:http://www.qtcn.org/bbs/simple/?t28610.html

功能:设置QMenu中菜单项的高度

代码片段:

class MyMenuItem:public QWidget
{
    Q_OBJECT
    public:
    MyMenuItem(QWidget *parent)
    {
        new QLabel("test",this);
    }
};
int main(int argc, char *argv[])
{
    popupMenu = new QMenu(this); 
    QAction *action1 = new QAction(tr("&New1"), this);
    QAction *action2 = new QAction(tr("&New2"), this);
    QAction *action3 = new QAction(tr("&New3"), this);
    QAction *action4 = new QAction(QIcon("./load.png"), tr("Bookstore"), this);
    popupMenu->addAction(action1);
    popupMenu->addAction(action2);
    popupMenu->addAction(action3);
    popupMenu->addAction(action4);
	
	MyMenuItem *item1 = new MyMenuItem(this);
    item1->setFixedSize(100,100);    //这里可以设置大小
    QWidgetAction *action1 = new QWidgetAction(popupMenu);
    action1->setDefaultWidget(item1);
	
    MyMenuItem *item2 = new MyMenuItem(this);
    QWidgetAction *action2 = new QWidgetAction(popupMenu);
    action2->setDefaultWidget(item2);
	
    MyMenuItem *item3 = new MyMenuItem(this);
    QWidgetAction *action3 = new QWidgetAction(popupMenu);
    action3->setDefaultWidget(item3);
	
    popupMenu->exec();
}

使用Qt的QAction类 在本文中,我们将详细介绍QAction类的使用方法,并提供相应的源代码示例。通过以上步骤,我们可以使用QAction类来创建动作,并将其添加到菜单或工具栏中,以实现用户界面的交互功能。根据实际需求,可以创建多个QAction对象,并连接到不同的槽函数,实现丰富多样的功能。在上述代码中,我们将动作的文本设置为"打开",并将图标设置为名为"open.png"的图标文件。在上述代码中,我们创建了一个名为"文件"的菜单,并将动作添加到菜单中。然后,可以在槽函数中编写相应的逻辑代码,处理打开文件的操作。 阅读详情

相关推荐

【QT开发】动作控件QAction类详解及实战应用

QAction是 Qt 提供的一个功能强大且灵活的动作控件,通过本篇文章的学习,你应该对QAction有了全面的理解,能够在自己的项目中正确使用它。通过QAction,你可以轻松地创建和管理用户的操作入口,使得应用程序更加友好和高效。

科技改变人类,技术成就未来 2344

QAction系列详解

QAction系列详解 一、QAction类详解 【详细描述】         QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。         应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面, 这个时候使用action来表示这些命令就显得十分有用。

chenlong12580的专栏 5万+

Qt基础-QAction类详解

Qt中的QAction类详解

qq_30725967的博客 1543

Qt常用类QAction类及方法简介

QAction类提供了一个可以同时出现在菜单和工具条上的抽象用户界面操作。        在图形用户界面应用程序中很多命令可以通过菜单选项、工具条按钮和键盘快捷键调用。因为同一个操作将会被执行,而与它的调用方法无关,并且因为菜单和工具条必须保持同步,所以提供一个操作这样的命令很有用。一个操作可以被添加到菜单和工具条中并且将会自动使它们同步。例如,如果用户按下“加粗”工具条按钮,“加粗”菜单项将会...

好习惯成就伟大 9092

【愚公系列】《AIGC辅助软件开发》041-如何使用 AI技术提升工作效率:AI辅助软件架构师实践

在数字化转型的浪潮中,软件架构师作为技术团队的核心,承载着系统设计与架构优化的重要责任。然而,随着项目复杂度的增加和技术环境的变化,架构师面临着前所未有的挑战。幸运的是,人工智能(AI)技术的迅猛发展为这一行业带来了新的机遇,帮助架构师提升工作效率、优化决策过程,并改善团队协作。本文将深入探讨AI如何辅助软件架构师的实际工作,具体分析AI在需求分析、架构设计、代码生成、测试和优化等环节的应用。

愚公智库 15万+

Excel数据分析实例

Excel数据分析实例 Excel数据分析五步走: 明确目的——观察数据——数据清洗——数据分析——数据可视化 数据是从Kaggle上下载的,牛油果的案例 目的 数据分析都是为了企业业务做得更好,这次案例主要针对于牛油果的销售量进行分析。 数据 检查是否有缺失值、是否一致化、是否有脏数据 分析 1.不同区域不同季度的牛油果价格走势 从上图中可以看出,东北地区的价格一直较高,而中南地区一直较低 2.2015-2018四年不同城市的销售总和 3.四年间不同城市的销售排名(降序排序) 可视化 1.四年间销

m0_53033371的博客 4368

qaction不显示_QAction系列详解

QAction系列详解一、QAction类详解【详细描述】QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面,这个时候使用action来表示这些命令就显得十分有用。Actions可以被添加到菜单和工具栏中,并且可以自动保持在菜单...

weixin_39798943的博客 1691

Ansys Zemax与Speos协同设计:从HUD光学优化到驾驶环境可视化全流程解析

本文深入解析了如何利用Ansys Zemax与Speos进行协同设计,实现从HUD光学系统核心优化到驾驶环境可视化验证的全流程。文章强调了HUD设计是光学性能与视觉感知的深度耦合,通过Zemax进行精密光学设计,再利用Speos进行系统级仿真与感知模拟,最终完成从虚拟到现实的闭环验证,有效提升HUD产品的开发效率与可靠性。

weixin_29199873的博客 245

Qt学习:QAction系列详解

一、QAction类详解 【详细描述】         QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。         应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面, 这个时候使用action来表示...

优快云博客 1万+

逆变器方案(工频全套)工频正弦波逆变器开发板全套设计资

逆变器方案(工频全套)工频正弦波逆变器开发板,24V-72V通用12只TO-247封装MOS管,额定输出功率6500W以下;配有触摸屏操作界面,运行数据一目了然,带市电互补UPS功能,可选择电池优先或市电有限工作,我们的开发板均从实战角度出发,让您的学习更便捷,包含全套设计资料,PCB.原理图.源代码,程序均有中文注释,MCU选用美国微芯公的PIC-8位单片机,民用数字电源首选单片机,抗干扰能力强,运行稳定。...

m0_73494033的博客 892

四旋翼滑模控制:从理论到Simulink实现

本文深入探讨了四旋翼滑模控制的理论与Simulink实现,对比了其相较于PID控制在抗干扰和鲁棒性方面的显著优势。文章详细介绍了从精确动力学建模、内外环滑模控制器设计到指令解算的完整流程,并分享了Simulink仿真搭建、参数调试及抗扰性能验证的实战经验,帮助工程师掌握在复杂环境下提升四旋翼稳定性的进阶技能。

weixin_29163581的博客 375

QAction类详解

          QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。         应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面, 这个时候使用action来表示这些命令就显得十分有用。          Actions可以被添加到菜单和工具栏中,并且可以自动保持在...

冷月醉雪的博客 8230

ue4 classuobject没有成员beginplay_【教程】UE4 C++实现简单的AI及遇到的坑

后续文章更新移步→微信公众号“虚幻社区”(mantra-xhsq),您的支持是我创作的动力。我们这篇文章的宗旨是用代码实现简单的AI,有多简单,只是搭建一个具有PawnSensing组件和回调的AI。重点也不是做一个AI,而是了解一下C++代码如何搭建最基本的AI(关于蓝图如何创建请自行百度)。如果英语还不错的话,可以移步 参考链接,链接中的内容除了创建基本的PawnSensing组件还有关于行为...

weixin_39929918的博客 1127

详解QAction的使用

对象封装了操作的基本属性(如文本、图标、快捷键等)以及行为(如执行的操作、状态变化等),使得开发者能够方便地管理用户界面中的各种命令,保持界面的一致性和交互的便捷性。

简介 3300

自助结账商品检测(Scanned Item Detection)——基于YOLOv8的RPC数据集实战

RPC数据集是由中国科学院自动化研究所发布的零售商品结账检测公开数据集,广泛用于自助结账和零售场景下的目标检测与识别。YOLOv8是YOLO系列最新版本,由Ultralytics推出,继承了YOLO家族的高效快速和高准确性,适用于实时检测场景。本文系统介绍了基于YOLOv8的RPC数据集自助结账商品检测方案,涵盖数据准备、训练、推理及UI界面设计。未来,可结合多模态感知、RFID融合技术,打造更加智能和稳定的自助结账系统。

YOLO 251

9、傅里叶变换:连续时间与离散时间信号分析的核心工具

本文深入探讨了傅里叶变换在连续时间和离散时间信号分析中的核心作用,详细介绍了连续时间傅里叶变换(CTFT)和离散时间傅里叶变换(DTFT)的定义、性质及其应用。文章涵盖了傅里叶级数到傅里叶变换的推导过程、常见变换对、系统分析中的关键性质,并讨论了采样后频谱的周期延拓与混叠问题。此外,还展示了傅里叶变换在滤波器设计、通信系统调制解调等实际场景中的应用,最后展望了其在图像处理、生物医学等领域的广阔前景。

jump7的博客 67

Qt的QAction

一、介绍 QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中。应用程序可以通过菜单,工具栏按钮以及键盘快捷键来调用通用的命令。由于用户期望每个命令都能以相同的方式执行,而不管命令所使用的用户界面,这个时候使用action来表示这些命令就显得十分有用。 举个例子,在一个字处理软件中,如果用户在工具栏中按下了Bold按钮,那么菜单中的Bold选项就会自动被选中。 二、使用 QAction可以包括一个图标,菜单文本,快捷键,状态文本,"What`s This"文本以及

sinat_31608641的博客 4891

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Qt | QAction】Qt 的 QAction 类介绍

👉本文介绍了Qt的 QActioin 类,详细介绍了该类重要的信号、槽函数。

wkd_007的博客 3578

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

QT QMenuBra QMenu QAction 菜单栏 操作详解

本文详细的介绍了QMenuBra QMenu QAction 菜单栏的各种操作,例如操作:新建界面、加入菜单项、加入子菜单、新建二级子菜单、QAction分隔符、pMenuBar、点击信号、触发信号、设置图标、设置禁用、设置提示语 等操作

断点 8511

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

QAction类详解:

先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action that can be inserted into widgets. In applications many common commands can be invoked via menus, to...

weixin_30746117的博客 1396

qaction不显示_QAction类详解:

先贴一段描述:Qt文档原文:Detailed DescriptionThe QAction class provides an abstract user interface action that can be inserted into widgets.In applications many common commands can be invoked via menus, toolbar ...

weixin_39906192的博客 809

【Qt】浅析QAction的事件触发机制 - triggered和toggled

我们可以把对按钮的一次点击、对下拉菜单的一次选择抽象理解成对QAction的一次操作。使用QAction时,我们不需要关心绘制出来的UI是button还是menu还是啥。就是,QAction能够配合QActionGroup使用,类似于元素与集合的关系,用来实现互斥选择的效果。如果这是一把高科技赛博枪,你只需要扣动一次,它就可以一直打击,你再扣动一次,它就停止打击。信号的bool checked参数表示的是改变后的状态。一个按钮是否是checkable的区别在于,它是一个门铃还是一个吊灯开关。

m0_55476160的博客 1万+
上一篇: (二十一)缓冲区操作与目录操作
下一篇: (二十三)Qt中的容器类简介
早起的虫儿灬
博客等级 码龄10年 54粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值