[英]Qt: Connecting signals and slots
我有一个MainWindow
,其中包含带有QTextEdit
的自定义窗口小部件。 我想在MainWindow
和QTextEdit
之间创建一个信号/插槽。
在MainWindow
我有:
QObject::connect(ui->Header,
SIGNAL(ui->Header->getTextWidget()->textChanged()),
this, // this : MainWindow
SLOT(headerUpdated())); // Function of MainWindow
但这是行不通的。 甚至有可能创建这种信号/插槽组合吗?
为什么要打扰-让Qt做所有的魔术:)像这样命名您的插槽(在mainWindow中):
void on_<object name>_<signal name>(<signal parameters>);
这样就完成了。 此处的更多信息: http : //doc.qt.io/qt-5/qmetaobject.html#connectSlotsByName重要:“对象名称”部分表示对象的名称,而不是变量名。 如果您在QtDesigner中设计窗口,则应进行设置(在ui.setupUi方法中)。 如果不是,请手动设置(通过调用setObjectName
只要注意插槽中的参数数量即可。 这是我的工作:我只是复制信号原型(从标头或文档中复制-例如: http : //doc.qt.io/qt-5/qabstractitemmodel.html#dataChanged-再次注意“ ::“和方法名称[某种类型的unbreakable-zerowidth-space]-仅在从v5.x doc复制时出现),并在其前面加上on_objectName_
。 这样可以保证您的插槽可以正常连接信号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.