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 :: setCellWidget()禁用QTableWidget中的信號?
- 5. QTableWidget cellClicked信號不工作
- 6. QTableWidget;使用celllChanged信號
- 7. QToolButton和發射信號
- 8. QtConcurrent ::運行發射信號
- 9. QFTP信號不發射?
- 10. 第一信號發射
- 11. 的Qt:發射信號
- 12. 從QRunnable發射信號
- 13. 信號發射結構
- 14. DBus Glib發送信號 - 沒有信號被髮射
- 15. QTableWidget中整行選擇的信號
- 16. QTableWidget的信號有什麼不同?
- 17. QTableWidget中嵌入式複選框發出的信號
- 18. PyQt QTableWidget信號在選擇無行時發出
- 19. 在QTableWidget單元中編輯數據時發出信號
- 20. 在靜態函數中發射信號
- 21. 關於Qt信號發射的Segfault
- 22. 的Qt:QSslSocket :: bytesWritten()信號被髮射往往
- 23. 未檢測到發射信號
- 24. PyQT 4 fnished()信號不會發射
- 25. 如何用dbus-sharp發射信號?
- 26. 信號沒有得到發射
- 27. 與QTcpSocket readyRead()信號發射兩次
- 28. Qt的:當信號被髮射
- 29. 有沒有辦法假髮射信號?
- 30. 用qt信號發射std :: string