簡體   English   中英

在插槽中使用QMap

[英]Use a QMap in a slot

我想使用以前創建的QMap以便在插槽內使用。 我嘗試遵循此操作,但仍然無法正常工作(我認為我只是在做一些愚蠢的事情)。 這是我正在使用的代碼。

構造函數:

QMap <int, QList<int> > tiles;
connect(ui->lineEdit, SIGNAL(editingFinished()), this, SLOT(someSlot()));

現在,每當我發送信號editingFinished時,我都希望someSlot檢查該值是否在QMap中,如果是,則繼續各種條件。 問題是,如何將QMap傳遞到插槽? Qt似乎不允許帶參數的插槽。

插槽只是Qt調用的函數。 它的調用方式很神奇,但這只是一個函數。 參數被傳遞到信號中(就像常規函數一樣),Qt最終將該參數(或更可能是該參數的副本)傳遞給接收器插槽。 在Qt中有一種邏輯,您不必在定義連接時像傳遞信號那樣向插槽傳遞盡可能多的參數,但這不用於本討論。

您無法在這樣的連接中按名稱傳遞參數。

您可以讓tile對象成為實現someSlot()的類的成員變量,或者必須將tile傳遞給連接到someSlot(const QMap>&)的信號

我的建議是使tile為成員變量,而不是堆棧變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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