精华内容
下载资源
问答
  • QT菜单QAction设置选中

    万次阅读 2018-07-09 10:12:45
    最近在做菜单栏,样式如下图:这里选择分支的时候,前面要被选中,分支是QMenu对象,后面的具体分支名称是QAction对象。代码如下:QMenu *menu11= new QMenu(tr("&分支")); project1Action= new ...

    最近在做菜单栏,样式如下图:


    这里选择分支的时候,前面要被选中,分支是QMenu对象,后面的具体分支名称是QAction对象。

    代码如下:

    QMenu *menu11= new QMenu(tr("&分支"));
    project1Action= new QAction(tr("&project1"));
    project2Action= new QAction(tr("&project2"));//(后面代码省略)

    为了选中某个分支需要做的操作如下:

    project1Action->setCheckable(true);
    project2Action->setCheckable(true);
    project1Action->setChecked(true);

    这样默认便选中了project1,核心点是自己使用代码创建的QAction默认是没有setCheckable的,因此在创建后要把所有的QAction setCheckable,否则setChecked无效。
    展开全文
  • QT中利用QAction增加菜单

    千次阅读 2017-03-09 12:07:48
    QAction类提供了一个可以同时出现在菜单和工具条上的抽象用户界面操作。 在图形用户界面应用程序中很多命令可以通过菜单选项、工具条按钮和键盘快捷键调用。因为同一个操作将会被执行,而与它的调用方法无关,...
    QAction类提供了一个可以同时出现在菜单和工具条上的抽象用户界面操作。
     
    

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

    QAction可以包含图标、菜单文本、快捷键、状态条文本、这是什么文本和工具提示。它们可以分别通过setIconSet()、setText()、setMenuText()、setToolTip()、setStatusTip()、setWhatsThis()和setAccel()来设置。

    操作可以是一个切换操作,例如,一个“加粗”工具条按钮,或者一个命令操作,例如“打开文件”来调用打开文件对话框。当切换操作的状态改变了,它发射toggled()信号。当命令操作和切换按钮被调用时,它们都发射activated()信号。使用setToggleAction()来设置操作的切换状态。如果要看操作是否是切换操作,请使用isToggleAction()。切换操作可以是“开”,isOn()返回真,或者“关”,isOn()返回假。

    操作可以使用addTo()被添加到窗口部件(菜单或者工具条)中,并且使用removeFrom()来移除。

    一旦QAction已经被创建,它应该被添加到相应的菜单或者工具条重并且然后连接到执行这个操作的槽。例如:

            fileSaveAction = new QAction( "Save File", QPixmap( filesave ),
                                          "&Save", CTRL+Key_S, this, "save" );
            connect( fileSaveAction, SIGNAL( activated() ) , this, SLOT( save() ) );
    

    我们创建一个菜单文本为“保存(&S)”并且Ctrl+S为键盘快捷键的“文件保存”操作。我们连接fileSaveAction的activated()信号到我自己的save()槽。注意在这时还没有菜单或者工具条操作,接下来我们将添加它们:

            QToolBar * fileTools = new QToolBar( this, "file operations" );
    
            fileSaveAction->addTo( fileTools );
    
            QPopupMenu * file = new QPopupMenu( this );
            menuBar()->insertItem( "&File", file );
    
            fileSaveAction->addTo( file );
    

    我们创建了一个工具条并把我们的fileSaveAction添加进去。类似的,我们创建一个菜单,添加一个顶级菜单项并且把我们的fileSaveAction添加进去。   

       我们建议把操作为它所在的窗口的子对象来创建。在绝大多数情况下操作是应用程序主窗口的子对象。

      为了防止循环,不要在一个稍后要添加操作的窗口部件的子对象中创建操作。

    转载自:http://blog.csdn.NET/metasearch/article/details/2148154

    展开全文
  • ①有响应的“动作/Action”,使用QAction实现,这里的响应为弹出一个“消息框”。 ②该“Action”可以在菜单栏、工具栏上点击。 ③鼠标停留在该“动作”上时,状态栏显示关于该“动作”相关提示信息。

    “需求”分析:

    ①有响应的“动作/Action”,使用QAction实现,这里的响应为弹出一个“消息框”。

    ②该“Action”可以在菜单栏、工具栏上点击。

    ③鼠标停留在该“动作”上时,状态栏显示关于该“动作”相关提示信息。

    说明:

    使用QMainWindow来使用菜单栏、工具栏、状态栏时会比较方便,因此使用QMainWindow来演示实例。

    技术细节:

    设置快捷键

    this->myAction->setShortcuts(QKeySequence::Print);

    设置状态栏显示

    this->myAction->setStatusTip("This is my action.");

    设置菜单栏

    this->ui->menuBar->addMenu("Menus")->addAction(myAction);
    设置工具栏

    this->ui->mainToolBar->addAction(myAction);

    -----------------------------------------------------------------------

    以下是全部源代码:

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    
    #include <QMainWindow>
    #include <QAction>
    #include <QMessageBox>
    #include <QIcon>
     
    
    namespace Ui {
    class MainWindow;
    }
     
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
        
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
     
    
    private slots:
        void popMesaagebox();
        
    private:
        Ui::MainWindow *ui;
        QAction *myAction;
    };
     
    
    #endif // MAINWINDOW_H
     ----------------------------------------------------------------------- 
    

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
     
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        this->resize(600,400);
        this->setWindowIcon(QIcon("./1.png"));
     
    
        this->myAction = new QAction(this);
        this->myAction->setText("MyAction");
        this->myAction->setIcon(QIcon("./1.png"));
        this->myAction->setStatusTip("This is my action.");
        this->myAction->setShortcuts(QKeySequence::Print);
        connect(myAction,SIGNAL(triggered()),this,SLOT(popMesaagebox()));
     
    
        this->ui->menuBar->addMenu("Menus")->addAction(myAction);
     
    
        this->ui->mainToolBar->addAction(myAction);
    }
     
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
    
    void MainWindow::popMesaagebox()
    {
        QMessageBox m(this);
        m.setWindowTitle("MyAction");
        m.setText("This is a messagebox for my action.");
        m.exec();
    }
     ----------------------------------------------------------------------- 
    

    main.cpp

    #include <QtGui/QApplication>
    #include "mainwindow.h"
     
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        return a.exec();
    }
     
    


    图标文件使用的是这个:

    展开全文
  • QAction

    千次阅读 2017-04-24 23:26:53
     1、QAction::QAction ( const QString & text, QObject...QAction对象一般为菜单中的菜单项,比如 "文件"菜单中"新建"选项就是一个QAction对象,上述构造函数中text成员变量即为菜单项所表示的内容。  用法:QA
    
    1、QAction::QAction ( const QString & text, QObject * parent )
        QAction类的构造函数之一,利用text,parent创建QAction对象。QAction对象一般为菜单中的菜单项,比如 "文件"菜单中"新建"选项就是一个QAction对象,上述构造函数中text成员变量即为菜单项所表示的内容。
        用法:QAction *newAction = new QAction(tr("&New"),this);

    2、void QAction::setIcon ( const QIcon & icon )
        该函数可设置菜单项名称前的图标
        用法:newAction->setIcon(QIcon(":/images/new.png"));

    3、void QAction::setShortcut ( const QKeySequence & shortcut );
        设置QAction对象执行的快捷键
        用法:newAction->setShortcut(tr("Ctrl+N"));

    4、void QAction::setStatusTip ( const QString & statusTip );
        设置当鼠标移动到“动作”上时,状态栏显示的提示语。

    5、void QAction::setVisible ( bool );
        设置“动作”显示与否,当形参为true是,“动作”表示。

    6、void QAction::triggered ( bool checked = false ) [signal]
        此函数为信号,当用户触发此“动作”时,此信号发射。例如用户点击了菜单中的菜单项等。
        此函数一般用法为:在QObject::connect()函数中作为信号参数,用于触发“动作”所对应执行的槽函数——实现“动作”的功能函数,例如:“新建”按钮被用户按下,所需要的功能可能是新建一个文档,那么新建一个文档的动作就在这个槽函数中实现。至于此信号函数中的形参暂时可以忽略。以后会在介绍QObject类中的静态方法connect()函数时详细解说。

    7、void QAction::setCheckable ( bool );
        此函数用于设置QAction类中的私有变量: bool checkable ,此属性用以提供“动作”是否为复选动作,例如Qt Creator中“控件”菜单中的“全屏”菜单项即为复选动作菜单
    展开全文
  • qt中的菜单QMenu QAction

    千次阅读 2017-12-04 10:15:41
    传送门: qt中的菜单QMenu QAction Qt中要建立菜单,有三个类很重要: [cpp] view plain copy QMenuBar(QWidget * parent = 0)  QMenu(QWidget * parent = 0) ...
  •   本节,我们将在前面主窗口基础之上,添加菜单和工具栏等的动作。虽然 Qt Creator 已经帮我们实现了主...Qt 使用QAction类作为动作。顾名思义,这个类就是代表了窗口的一个“动作”,这个动作可能显示在菜单,...
  • Qt 右击弹出菜单 获取QAction 的文本 说明 因为QAction的signal triggered不能直接穿参数给槽函数 这里是直接把信号与槽的信号转为了QAction类 这样就可以直接调用QAction的函数获取当前点击的条目的文本了 sender是...
  • 在学习Qt 菜单和工具栏设置图标的过程中,发现无论怎么设置,更改图片资源,都不能显示图片,然后就进行了以下步骤,解决了该问题: 1、构建 -> 清理项目; 2、构建 -> 构建项目; 3、构建 -> 执行qmake; 4、...
  • 菜单
  • Qt菜单 QMenu QAction连接信号槽函数

    万次阅读 2017-01-04 11:34:45
    Menu菜单 中的QAction 自身连接槽函数 QStringList strList; for(int i = 0; i(); i++) { QString valStr = strList.at(i); if(valStr == "SEPARATOR") m_menu->addSeparator(); else {
  • } void MainWindow::create_actions_() { action_about_ = new QAction(tr("About"), this); connect(action_about_, &QAction::triggered, this, &MainWindow::about_); } void MainWindow::create_menus_() { ...
  • 关于QT的菜单QMenu和QAction

    千次阅读 2014-03-09 09:12:45
    关于菜单,我之前并没有按照C++ GUI QT4 中所说的那样,用Action去添加菜单和工具栏,而是用了QMenuBar->addMenu 这种思路去做,最后将QMenuBar布局显示,界面什么的都差不多可以实现,从网上看也没有这样添加菜单的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,783
精华内容 1,913
关键字:

qaction设置菜单