gpt4 book ai didi

c++ - Linux 中 QToolButton 的事件处理问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:12 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我在其中添加了一个 QToolBar 对象,并在其上添加了 QToolButton 对象,我还连接了 clicked() 事件,但问题是鼠标点击事件没有在 QToolButton 上工作,但是当我使用 Tab 将焦点放在 QToolButton 上时,空格键可以正常工作,但我希望通过鼠标单击它。有什么想法吗?这是代码。

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()));

最佳答案

工具按钮通常在使用 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);

您可以使用triggered 信号,当给定的 Action 被触发时会发出此信号。

你的例子:

QToolButton *playButton=new QToolButton(pToolBar);
connect(playButton, SIGNAL(triggered()),SLOT(playButtonClicked()));

关于c++ - Linux 中 QToolButton 的事件处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1377679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com