如何使用QToolButton

时间:2013-10-09 14:24:06

标签: c++ qt

我正在尝试使用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);
}

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

1 个答案:

答案 0 :(得分: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