c++ - Qt问题将参数传递给插槽

标签 c++ qt qt4 signals-slots

我似乎无法将参数传递给插槽。如果我不传递参数,该函数将正常运行。如果我传递一个参数(整数),我会在编译时收到错误“No such name type”和“No such slot”。

在我的标题中,我声明:

private slots:
void addButton(int);
signals:
void clicked(int)

在我的 Main.cpp 中,我这样做:

int count;
int count = 0;
QPushButton* button = new QPushButton("Button");
_layout->addWidget(button);
connect(button, SIGNAL(clicked(count), this, SLOT(addButton(count)));

....

void Main::addButton(int count) {

//do stuff with count

}

最佳答案

Sebastian 是正确的,您不能以您尝试的方式执行此操作,但是 Qt 确实提供了一个类,可以为您提供所需的功能。

查看 QSignalMapper .它允许您将整数与对象/信号对相关联。然后你连接到它的信号而不是直接连接到按钮。

关于c++ - Qt问题将参数传递给插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160321/

相关文章:

qt - 无法启动程序。路径或权限错误?在 Qt 中

python - 使用 pyInstaller/UPX 制作的可执行文件遇到 QtCore4.dll 错误

linux - KDE 和 Gnome 的图形用户界面

c++ - copy-and-swap 习语在 self 分配期间如何工作?

c++ - 为模板类定义一个 Sentinel 节点,一个没有默认构造函数的类?

c++ - 编号的唯一文件

spring - QHttpMultiPart 生成不同的边界

c++ - 如何去掉 QSpinBox 中的前导零

c++ - 如何在点击 Qtablewidget 单元格时获取放置在该单元格中的小部件的行号?

c++ - C/C++即时输入