簡體   English   中英

Qt:連接信號和插槽

[英]Qt: Connecting signals and slots

我有一個MainWindow ,其中包含帶有QTextEdit的自定義窗口小部件。 我想在MainWindowQTextEdit之間創建一個信號/插槽。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM