我正在开发一个应用程序,我在其中添加了一个QToolBar对象,并在其上添加了QToolButton对象,我还将clicked()事件连接到那个但是问题是鼠标单击事件没有在QToolButton上工作但是当我使用Tab将焦点放在那里时,那么空格按钮工作正常,但我想用鼠标点击它...任何想法?这是代码。
pToolBar = new QToolBar(this);
pToolBar->setAllowedAreas(Qt::NoToolBarArea);//NoToolBarAreaAllToolBarAreas
pToolBar->setFloatable(false);
pToolBar->setGeometry(300,0,160,30);
QToolButton *playButton=new QToolButton(pToolBar);
playButton->setIcon(QIcon("/images/play.png"));
playButton->setGeometry(10,0,40,30);
playButton->setToolTip("Play/Pause");
connect(playButton, SIGNAL(clicked()),SLOT(playButtonClicked()));
答案 0 :(得分:1)
工具按钮通常在使用 QToolBar :: addAction()创建新 QAction 实例时创建,或者使用 QToolBar将现有操作添加到工具栏中: :的addAction()的。
示例:
QAction *newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this);
newAct->setShortcut(tr("Ctrl+N"));
newAct->setStatusTip(tr("Create a new file"));
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
fileToolBar = addToolBar(tr("File"));
fileToolBar->addAction(newAct);
您可以使用触发的信号,触发给定操作时会发出此信号。
你的例子:
QToolButton *playButton=new QToolButton(pToolBar);
connect(playButton, SIGNAL(triggered()),SLOT(playButtonClicked()));
答案 1 :(得分:0)
尝试将工具按钮显式添加到工具栏。以下代码对我来说非常适合:
QToolBar *pToolBar = new QToolBar(this);
QToolButton *playButton=new QToolButton(pToolBar);
playButton->setIcon(QIcon("/images/play.png"));
playButton->setText("Play");
playButton->setToolTip("Play/Pause");
playButton->setGeometry(10,0,40,30);
QAction *a = pToolBar->addWidget(playButton);
a->setVisible(true);
connect(playButton, SIGNAL(clicked()),SLOT(playButtonClicked()));
您应该将QAction指针保存在某处,因为这是分配键盘快捷键,启用/禁用按钮等的最简单方法。让我知道这是否适合您。如果没有,也许在这里发布一个完整的可编辑示例将帮助我们帮助您。您应该能够获得一个小型演示程序,在一个或两个文件中显示您的问题。
干杯,
答案 2 :(得分:0)
正如jordenysp间接解释的那样,API是以QAction为中心的