Qt继承自QPushButton的对象的clicked信号与定义的槽函数无法关联
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt继承自QPushButton的对象的clicked信号与定义的槽函数无法关联相关的知识,希望对你有一定的参考价值。
btn::btn(QWidget * parent) :
QPushButton(parent)
connect(this, SIGNAL(clicked()), this, SLOT(onClicked()));
然后运行时报QObject::connect: No such slot QPushButton::onClicked()
点击按钮onClicked()槽函数也没有执行
为什么会出现这样的情况?有什么方法解决这个问题?
是否添加了Q_OBJECT宏
如:
class btn: public QPushButton Q_OBJECT ;是否声明和定义了槽onClicked
如:
public slots:void onClicked();
是因为没有添加Q_OBJECT宏 不报错了但是不知道为什么onClicked()为什么没有执行
private slots:
void onClicked();
void btn::onClicked()
this->hide();
Qt常见控件和操作
按钮——QPushButton
就是常见的按钮
信号:被点击
当按钮被点击就会发出 clicked 信号,可以这样指定处理该信号的函数
button.clicked.connect(handleCalc)
方法:改变文本
代码中可以使用 setText 方法来改变按钮文本,比如
button.setText(text)
方法:禁用、启用
所有控件(继承自QWidget类)都支持 禁用和启用方法。
禁用后,该控件不再处理用户操作
禁用
button.setEnabled(False)
启用
button.setEnabled(True)
单行文本框——QLineEdit
是只能单行编辑的文本框。
信号:文本被修改
当文本框中的内容被键盘编辑,被点击就会发出 textChanged 信号,可以这样指定处理该信号的函数
edit.textChanged.connect(handleTextChange)
方法:获取文本
通过 text 方法获取编辑框内的文本内容,比如
text = edit.text()
方法:设置提示
通过 setPlaceholderText 方法可以设置提示文本内容,比如 edit.setPlaceholderText(‘请在这里输入URL‘)
方法:设置文本
通过 setText 方法设置编辑框内的文本内容为参数里面的文本字符串,比如 edit.setText(‘你好‘)
原来的所有内容会被清除
方法:清除所有文本
clear 方法可以清除编辑框内所有的文本内容,比如
edit.clear()
方法:拷贝文本到剪贴板
copy 方法可以清除编辑框内所有的文本内容,比如
edit.copy()
方法:粘贴剪贴板文本
paste 方法可以把剪贴板内容,拷贝到编辑框当前光标所在处,比如
edit.paste()
以上是关于Qt继承自QPushButton的对象的clicked信号与定义的槽函数无法关联的主要内容,如果未能解决你的问题,请参考以下文章