3
A
回答
5
你必須使用connect
趕上signal
cellChanged(int,int)
當細胞發生變化:
connect(yourTableWidget, SIGNAL(cellChanged(int, int)), this, SLOT(doSomething(int, int)));
你必須創建一個slot
,例如doSomething
:
public slots:
void doSomething(int row, int column)
{
// Get cell text
QString text = yourTableWidget->item(row,column)->text();
// Emit
emit somethingIsDone(row,column,text);
}
創建信號somethingIsDone
(或使用現有的信號)哪些使用(int,int,QString
)參數(的參數可能是另一種順序)
signals:
void somethingIsDone(int row, int column, QString text);
2
您必須製作插槽功能並使用QObject :: connect將其連接到cellChanged
信號。
例如:
QTableWidget* widget;
widget = new QTableWidget(this);
connect(widget, SIGNAL(cellChanged(int, int)), otherObject, SLOT(youSlot(int, int));
在你的插槽,你可以使用接收到的參數得到QTableWidgetItem:行和列數。在這裏你可以發出你自己的信號也包含文本。
QTableWidgetItem* item = widget->item(row, column);
QString textFromItem = item->data(Qt::UserRole);
emit cellChanged(row, column, textFromItem);
當然,以前,您必須聲明自己的信號:
signals:
void cellChanged(int row, int col, QString text);
你的信號可以連接到其他插槽以同樣的方式作爲cellChanged(int, int)
相關問題
- 1. 何時在QTableWidget中觸發cellChanged信號?
- 2. QT,QTableWidget:使用cellChanged()更改項目 - 信號
- 3. 沒有這樣的信號QTableWidget :: cellChanged(int,int)
- 4. QTableWidget cellClicked信號不工作
- 5. QTableWidget;使用celllChanged信號
- 6. QToolButton和發射信號
- 7. 第一信號發射
- 8. 信號發射結構
- 9. QtConcurrent ::運行發射信號
- 10. DBus Glib發送信號 - 沒有信號被髮射
- 11. QTableWidget中整行選擇的信號
- 12. PyQt QTableWidget信號在選擇無行時發出
- 13. QTableWidget中嵌入式複選框發出的信號
- 14. 在QTableWidget單元中編輯數據時發出信號
- 15. 如何用dbus-sharp發射信號?
- 16. pygtk:如何手動發射信號
- 17. PySide發射信號導致python崩潰
- 18. QTJambi - QNetworkManager從線程不發射信號
- 19. Qt5 QNetworkAccessManager完成信號永不發射
- 20. 信號沒有得到發射
- 21. 與QTcpSocket readyRead()信號發射兩次
- 22. 用qt信號發射std :: string
- 23. 從其他線程發射信號
- 24. Qt的信號是發射器,但信號似乎沒有觸發
- 25. Qt信號映射:編輯發射器對象
- 26. QTableWidget的itemDoubleClicked信號鏈接文本編輯
- 27. PyQt4的cellPressed和cellClicked信號之間的差異QTableWidget
- 28. 觸發信號流
- 29. 發出SIGNAL信號?
- 30. QT:如何創建當信號被髮射