1

我正在尝试使用 QToolBar 创建一个下拉按钮。我尝试使用以下策略来做到这一点:

http://qt-project.org/forums/viewthread/5377

问题是当我点击它时按钮没有立即响应。需要单击几下才能显示菜单。

我想我把代码放在了错误的地方,但我应该把它放在哪里呢?

这是我的代码:

Proto::Proto(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Proto)
{
 ui->setupUi(this);
 QMenu *menu = new QMenu("Menu");
 QWidgetAction *action = new QWidgetAction(this);
 QPushButton *button2 = new QPushButton("Click me", menu);
 action->setDefaultWidget(button2);
 menu->addAction(action);
 ui->btnVolume->setMenu(menu);
}

拜托,有人可以帮助我吗?提前致谢,

4

1 回答 1

0

好像您忘记将按钮连接到插槽(或者至少,它未显示在您发布的代码中)。我刚刚添加了connect()这样的声明

QPushButton *button2 = new QPushButton("Click me", menu);

connect(button2, SIGNAL(clicked()), SLOT(dosmth()));

action->setDefaultWidget(button2);

然后实现了这个简单dosmth()的 Q_SLOT

void MainWindow::dosmth() {
    qDebug() << "Hi";
}

并且在每次单击按钮时,我都会在控制台上得到这个:

Hi
Hi
Hi
于 2013-10-09T15:12:31.777 回答