2013-02-25 21 views
1

我有很多QLineEdit在我的主窗口。我將每個對象的editingFinished()SIGNAL連接到我的QMainWindow類中的單個SLOT。 我想實現我自己的撤銷/重做功能。我找到了Qt撤消框架很難理解&複雜執行。 所以我想保留一個QList <QLineEdit *> undoList;,它將存儲已修改的QLineEdit的序列。我正在維護一個int變量來跟蹤當前狀態。撤銷/重做完成後,我可以簡單地更新int變量&找到QLineEdit,該編輯狀態爲&,然後在QLineEdit上調用undo()。 目前我最大的問題是,因爲我已經將我所有的QLineEdit都連接到了一個SLOT,我不知道哪個QLineEdit發出了SIGNAL。 所以我想知道是否有什麼方法可以讓我明白哪個QLineEdit發出SIGNAL。 謝謝。如何識別哪個QObject在Qt中發出信號?

+0

可能重複[如何知道哪個QLineEdit在信號處理程序中發出editingFinished()?](http://stackoverflow.com/questions/5025089/how-to-know-which-qlineedit-emitted-the-編輯完成,在信號手中) – 2013-02-25 12:14:04

+0

@BЈовић謝謝你。 – 2013-02-25 12:22:27

回答

7

在槽內使用sender()得到發出連接到它的信號的QObject

+0

yup在這裏找到了解決方案:http://stackoverflow.com/questions/5025089/how-to-know-which-qlineedit-emitted-the-editingfinished-inside-the-signal-hand?rq=1 – 2013-02-25 12:00:30

+0

關於Qt撤消框架。 有沒有什麼好的網絡文章或者一些教程或者解釋Qt Undo Framework以及如何爲像我這樣的初學者實現它? 我很努力從4.8版本的Qt SDK中的2個例子中理解。您的幫助將是最受歡迎的。 謝謝:) – 2013-02-25 12:02:19

+0

@CAD_coding我從內存中不知道任何東西,但是網絡上必須有非官方的東西,你必須做一些網絡拖網。 – cmannett85 2013-02-25 12:11:06

相關問題