QTableView和tablewidget转换
时间: 2024-02-02 19:04:18 浏览: 93
密函数
string decrypt(string ciphertext, string key) {
// 进行IP置换
string permuted = applyIP(ciphertextQTableView和QTableWidget是Qt中两个常用的表格控件,二者的最大区别在于Q);
// 分离左右两半
string left = permuted.substr(0, 4);
string right = permutedTableView是一个基于Model/View架构的表格视图,而QTableWidget则是一个单独的表格控.substr(4, 4);
// 获取子密钥
string subkey1 = getSubkey(key, 1);
件。因此,直接将QTableView转换为QTableWidget是不可行的。
如果您需要将一个QTableView string subkey2 = getSubkey(key, 0);
// Round 1
string expanded = right[3] + right的内容显示在一个QTableWidget中,可以通过以下步骤实现:
1. 创建一个QTableWidget,并设置表格 + right[0];
string xorResult = "";
for (int i = 0; i < expanded.length(); i++) {
if (expanded[i] == subkey1[i]) {
xorResult += "0";
} else {
xorResult += "1的行数、列数和表头标签等属性;
2. 创建一个QStandardItemModel,并使用setRowCount()和setColumn";
}
}
int sBoxResult1 = applySBox(S_BOX1, xorResult.substr(0, 4));
Count()函数设置模型的行数和列数;
3. 将QTableView中的数据复制到QStandardItemModel中;
int sBoxResult2 = applySBox(S_BOX2, xorResult.substr(4, 4));
string sBoxOutput = decimal4. 将QStandardItemModel设置为QTableWidget的模型。
下面是示例代码:
```
// 创建QTableWidgetToBinary(sBoxResult1, 2) + decimalToBinary(sBoxResult2, 2);
string p4Output = apply
QTableWidget *tableWidget = new QTableWidget(this);
tableWidget->setRowCount(tableView->model()->rowCount());
tableWidget->setP4(sBoxOutput);
xorResult = "";
for (int i = 0; i < p4Output.length(); i++)ColumnCount(tableView->model()->columnCount());
tableWidget->setHorizontalHeaderLabels(QStringList() << "Column 1" << "Column {
if (p4Output[i] == left[i]) {
xorResult += "0";
} else {
xorResult +=2" << "Column 3");
// 创建QStandardItemModel
QStandardItemModel *standardModel = new QStandardItemModel(this);
standardModel "1";
}
}
left = right;
right = xorResult;
// Round 2
expanded = right[->setRowCount(tableView->model()->rowCount());
standardModel->setColumnCount(tableView->model()->columnCount());
// 复制数据到QStandardItem3] + right + right[0];
xorResult = "";
for (int i = 0; i < expanded.length(); iModel中
for (int row = 0; row < tableView->model()->rowCount(); ++row) {
for (int col =++) {
if (expanded[i] == subkey2[i]) {
xorResult += "0";
} else {
xorResult 0; col < tableView->model()->columnCount(); ++col) {
QModelIndex index = tableView->model()->index(row, col);
+= "1";
}
}
sBoxResult1 = applySBox(S_BOX1, xorResult.substr(0, 4 QVariant data = tableView->model()->data(index, Qt::DisplayRole);
standardModel->setData(standardModel->index(row, col));
sBoxResult2 = applySBox(S_BOX2, xorResult.substr(4, 4));
sBoxOutput = decimal), data);
}
}
// 将QStandardItemModel设置为QTableWidget的模型
tableWidget->setModel(standardModel);
```
这样就可以将QTableView中的数据显示在QTableWidget中了。注意,该方法只适用于将ToBinary(sBoxResult1, 2) + decimalToBinary(sBoxResult2, 2);
p4Output = applyPQTableView的数据显示在QTableWidget中,无法保留QTableView的其他特性,如样式、编辑功能等。
阅读全文