[英]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.