回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个TableWidget,通过按一个按钮创建组合框。我需要获取一个组合框的行,如果我与is交互,那么另一个CombobBox会更改其内容。我找到了<a href="https://qt-project.org/faq/answer/how_can_i_get_hold_of_a_cell_widgets_row" rel="nofollow">this</a>,但我不能完全理解它。在</p>
<pre><code>#include <QtGui>
class TableWidget : public QTableWidget
{
Q_OBJECT
public:
TableWidget()
{
edit = new QLineEdit(this);
setColumnCount(5);
setRowCount(5);
setCellWidget(4,1, edit);
connect(edit, SIGNAL(textChanged(const QString)), this, SLOT(test1(const QString)));
}
public slots:
void test1(const QString &text)
{
QWidget *wid = QApplication::focusWidget();
if (wid) {
QModelIndex index = indexAt(wid->pos());
qDebug() << index.row();
}
}
private:
QLineEdit *edit;
};
#include "main.moc"
int main(int argc, char** argv)
{
QApplication app(argc, argv);
TableWidget window;
window.show();
return app.exec();
}
</code></pre>
<p>尝试用python编写上面的内容,我有这样一个:</p>
^{pr2}$
<p>如何在索引函数中使用上述内容?在</p>
<p>我正在使用QtDesigner下面是我的桌子:</p>
<pre><code> self.tableWidget = QtGui.QTableWidget(Dialog)
self.tableWidget.setGeometry(QtCore.QRect(20, 150, 521, 91))
self.tableWidget.setStyleSheet(_fromUtf8("background-color: rgb(240, 240, 240);"))
self.tableWidget.setFrameShape(QtGui.QFrame.NoFrame)
self.tableWidget.setShowGrid(False)
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(3)
self.tableWidget.setRowCount(0)
item = QtGui.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(1, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(2, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtGui.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
self.tableWidget.horizontalHeader().setVisible(False)
self.tableWidget.horizontalHeader().setStretchLastSection(True)
self.tableWidget.verticalHeader().setVisible(False)
self.tableWidget.verticalHeader().setStretchLastSection(False)
</code></pre>
<p>下面是我如何插入comboBox小部件并插入想要的项:</p>
<pre><code>index = self.tableWidget.rowCount()
criteria1_comboBox = QtGui.QComboBox(self.tableWidget)
font = QtGui.QFont()
font.setPointSize(10)
criteria1_comboBox.setFont(font)
for combo_ind,i in enumerate(["Name", "Extension", "Size"]):
criteria1_comboBox.addItem(_fromUtf8(""))
criteria1_comboBox.setItemText(combo_ind, QtGui.QApplication.translate("Dialog", i, None, QtGui.QApplication.UnicodeUTF8))
self.tableWidget.setCellWidget(index, 0, criteria1_comboBox)
</code></pre>