gpt4 book ai didi

c++ - 为什么 append Slot 不起作用?

转载 作者:行者123 更新时间:2023-11-30 04:38:21 24 4
gpt4 key购买 nike

当我尝试进行以下简单连接时遇到问题

QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
QTextEdit *text = new QTextEdit("Hello QT!");

QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));
QObject::connect(slider,SIGNAL(valueChanged(int)),text, SLOT(append("slider changed!")));
QObject::connect(spinBox,SIGNAL(valueChanged(int)),text, SLOT(append("spinbox changed!")));
QObject::connect(text,SIGNAL(textChanged()),spinBox,SLOT(clear()));

可以成功编译执行,但是两个append槽好像不行,我查了QTextEdit的帮助手册,有一个public槽append there.Have I missed something?帮助将不胜感激!

最佳答案

不幸的是,您不能通过QObject::connect 将自定义值传递给您的插槽(只允许/正确解释参数的类型信息)。相反,创建你自己的插槽,比如

void MyWidget::mySliderChangedSlot(int newValue)
{
text->append("slider changed!");
}

并使用

QObject::connect(slider, SIGNAL(valueChanged(int)), pMyWidget, SLOT(mySliderChangedSlot(int)));

实现您想要的行为。

希望对您有所帮助。

关于c++ - 为什么 append Slot 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3177842/

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