1
在Qt中,菜单项和工具栏的工具按钮的实现都是依靠“动作”来完成的。所谓动作,顾名思义,就是用来完成某项任务的行动序列。Qt中的动作对应的是QAction类。
2
要想创建一个工具栏,我们首先需要创建好想要放在工具栏上的项目,也就是各个“动作”。
要创建“动作”,我们需要在工程中打开界面文件(即ui文件),然后点击下方的“新建”按钮。
3
接着,在d出的“新建动作”窗口填写相应的项目。
1)文本,即动作显示的名称。比如“新建”、“保存”等
2)对象名称,即动作对象本身的名称,以便用来引用该对象
3)ToolTip,即工具提示
4
4)图标
要想在工具栏显示图标,必须为相应的动作添加图标。而要想在动作中添加图标,我们首先需要在Qt中添加资源文件,将图标文件添加到资源文件中。关于在Qt中添加资源文件的方法,可以搜索并参考我的经验《Qt怎样添加资源》,在此就不再多说了。
当已经添加好图标资源后,点击菜单“文件”-“保存所有文件”。然后,我们再次打开创建好的动作,点击上面带...的按钮,然后在d出的资源对话框中将相应的图标加进来。
在此提醒大家,添加资源后,一定要先点击“保存所有文件”将资源文件保存,否则你添加的图标文件有可能显示不出来。
5
5)快捷键
要为动作添加快捷键,首先需要将鼠标在快捷键框内点击一下,以便将焦点定位到快捷键(注意,不会有任何显示),然后再在键盘上按下相应的快捷键。这时,框内便会显示你按下的快捷键。
6
动作的各个项设置好之后,点击OK完成。再依照2~5步相同的方法,创建好其他要在工具栏上显示的动作。作为示例,在此我就不再创建其他动作了,因为方法是一样的。
END
二、将动作添加到工具栏
1
现在,如果我们想将相应的动作放到工具栏上,只需要用鼠标将相应的动作拖动到工具栏上就可以了。
2
现在,相应动作的图标就已经成功在工具栏上显示出来了。是不是非常容易呢?
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)