Qt4 插槽函数未被调用
我正在学习QT并尝试一些例子 我试图创建一个对话框,当按下按钮时,标签消失,当再次按下同一按钮时,标签出现 下面是代码Qt4 插槽函数未被调用,qt4,signals-slots,Qt4,Signals Slots,我正在学习QT并尝试一些例子 我试图创建一个对话框,当按下按钮时,标签消失,当再次按下同一按钮时,标签出现 下面是代码 #include <QApplication> #include <QPushButton> #include <QLabel> #include <QDialog> #include <QObject> #include <QHBoxLayout> int main(int argc, char **
#include <QApplication>
#include <QPushButton>
#include <QLabel>
#include <QDialog>
#include <QObject>
#include <QHBoxLayout>
int main(int argc, char ** argv)
{
QApplication app(argc, argv);
QDialog *dialog = new QDialog;
QPushButton *testButton = new QPushButton(QObject::tr("test"));
QLabel * testLabel = new QLabel (QObject::tr("test"));
QHBoxLayout * layout = new QHBoxLayout;
layout->addWidget(testButton);
layout->addWidget(testLabel);
QObject::connect(testButton, SIGNAL(toggled(bool)), testLabel, SLOT(setVisible(bool)));
dialog->setLayout(layout);
dialog->show();
return app.exec();
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,字符**argv)
{
QApplication应用程序(argc、argv);
QDialog*dialog=新建QDialog;
QPushButton*testButton=新的QPushButton(QObject::tr(“测试”));
QLabel*testLabel=新的QLabel(QObject::tr(“test”);
QHBoxLayout*布局=新的QHBoxLayout;
布局->添加小部件(测试按钮);
布局->添加小部件(testLabel);
QObject::connect(测试按钮、信号(切换(bool))、测试标签、插槽(setVisible(bool));
对话框->设置布局(布局);
对话框->显示();
返回app.exec();
}
它不起作用。每当我按下测试按钮,什么都不会发生。但是如果我将信号插槽连接更改为QObject::connect(testButton,signal(clicked(bool)),testLabel,slot(setVisible(bool))代码>它使标签消失
那么,为什么它不与信号“切换”一起工作呢。我猜测的是,它无法找到那个信号。你们能给我点颜色看看吗?你们需要添加:
testButton->setCheckable(true);
要启用切换,您需要添加:
testButton->setCheckable(true);
启用切换。问题在于QPushButton
不会发出切换(bool)
信号。只有可检查的小部件,如QCheckBox
请参见QAbstractButton::toggled
信号的第一行:
This signal is emitted whenever a checkable button changes its state.
问题是QPushButton
不会发出切换(bool)
信号。只有可检查的小部件,如QCheckBox
请参见QAbstractButton::toggled
信号的第一行:
This signal is emitted whenever a checkable button changes its state.