- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 qt - 在《C++ GUI Programming With Qt 4》一书中,我试图让所有代码都能正常工作。我在将自定义表格小部件中的内容选择转换为纯文本时遇到问题。
书中现有代码:
void MyTableWidget::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {
int distance = (event->pos() - startPos).manhattanLength();
if (distance >= QApplication::startDragDistance())
performDrag();
}
QTableWidget::mouseMoveEvent(event);
}
void MyTableWidget::performDrag()
{
QString plainText = selectionAsPlainText();
if (plainText.isEmpty())
return;
QMimeData *mimeData = new QMimeData;
mimeData->setText(plainText);
mimeData->setHtml(toHtml(plainText));
mimeData->setData("text/csv", toCsv(plainText).toUtf8());
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
if (drag->exec(Qt::CopyAction | Qt::MoveAction) == Qt::MoveAction)
deleteSelection();
}
我正在尝试编写 selectionAsPlainText() 和 deleteSelection()。
QTableWidgetSelectionRange MyTableWidget::selectedRange() const
{
QList<QTableWidgetSelectionRange> ranges = selectedRanges();
if (ranges.isEmpty())
return QTableWidgetSelectionRange();
return ranges.first();
}
QString MyTableWidget::selectionAsPlainText()
{
QTableWidgetSelectionRange range = selectedRange();
QList<QTableWidgetItem *> items = selectedItems();
QString str;
for (int i=0;i<range.rowCount();i++){
for (int j=0;j<range.columnCount();j++){
// error on this line
str+=QString(items.at(i*(range.columnCount()-1)+j)->data(Qt::DisplayRole)));
if (j!= range.columnCount()-1)
str += "\t";
}
str += "\n";
}
return str;
}
在这个尝试中,我试图将 QTableWidgetItem
中的项目放在 QString
中,用 "\t"< 分隔
或 "\n"
。
我无法尝试任何类型的此类操作,因为我在尝试将任何内容放入 QString 时遇到错误。
到目前为止我尝试过的一切都给我一个错误
conversion from 'QTableWidgetItem* const' to 'QChar' is ambiguous
or
error: no matching function for call to 'QString::QString(QVariant)'
我不知道如何进行这种类型转换,我还没有看到有关如何指定类型转换的示例...虽然据我了解,选择数据的 Qt::DisplayRole,我应该隐含地有一个QString...
如何使这种类型转换起作用?
我包含了更多代码来表明 TableWidget 可能属于未知类型。
最佳答案
首先,大量嵌套的括号很难阅读。我建议将有问题的行分成几行。其次,从 QTableWidgetItem::data
返回的类型是一个 QVariant
,可以使用 QVariant::将其转换为
成员函数。另外,我认为 QString
toString()i*(range.columnCount()-1)
不是您想要的。
鉴于此,您的代码应如下所示:
int index = i*range.columnCount()+j;
QTableWidgetItem* item = items.at(index);
str += item->data(Qt::DisplayRole).toString();
关于c++ - 从 'QTableWidgetItem* const' 到 'QChar' 的转换......或者 QString......是不明确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253534/
我阅读了文档,上面写着 QChar::isNumber()那个 Returns true if the character is a number (Number_* categories, not
我有一个qulonglong变量,我需要把它转换成QChar。 例如,从数字 65 我应该得到 'A'。 或者,如果有一种解决方案可以将其直接转换为 QString 也很好。 最佳答案 您需要的是 Q
我想将 QString 转换成文件名。因为我希望文件名看起来干净,所以我想用下划线替换所有非字母和非数字。以下代码应该可以做到这一点。 #include #include QString make
我需要将 QChar 转换为 wchar_t 我试过以下方法: #include #include #include using namespace std; int main(int argc
如何优雅的获取digits值? QChar qc('4'); int val=-1; if(qc.isDigit()){ val = qc.toLatin1() - '0'; } 看起来不太好。
在 C++ 中,有一种方法可以将 char 转换为 int 并返回 ascii 值。有没有一种方法可以对 qchar 执行相同的操作?由于 unicode 支持如此多的字符,并且其中一些实际上看起来很
#include #include int main(int argc, char *argv[]) { QCoreApplication a (argc, argv); unsi
我正在构建一个 Qt Gui 应用程序来监视来自串行端口的数据。我正在使用 qextserialport 库。这是我遇到的问题。 void MainWindow::onDataAvailable()
我正在研究解析器。我想逐个字符地解析文本文件。 bool parse(QString fileName, QString fieldTerminator,
我需要将 QChar 传递给需要 wchar_t 的函数: void myFunc(wchar_t wch); 尝试只传递 QChar 失败并出现错误: error: C2664: 'myFunc'
我需要从 QChar 获取 ASCII 代码。 在 Qt 5.2 中,QChar::ToAscii 已被删除。 这是我的代码。如何获取 ASCII 码? QString data; int key;
我想制作加密(稍后解密)用户输入的字符串的程序。这是加密的开始: QString getData = ui->text->toPlainText(); //Data to process std::s
在 Java 中,我能够使用 Unicode.blockOf(Character) 确定特定字符是否为日文汉字。我正在尝试为 QChar 做同样的事情,但找不到相关的功能来做到这一点。我想知道我是否只
我有一个应用程序应该处理各种字符,并在某些时候显示有关它们的信息。我在 QChar、QString 等中使用 Qt 及其固有的 Unicode 支持。 现在我需要 QChar 的代码点以便在 http
我正在尝试为 Code page 437 编写编解码器.我的计划是只传递 ASCII 字符并将剩余的 128 个字符映射到一个表中,使用 utf-16 值作为键。 对于某些组合字符(带点的字母、波浪号
可以告诉我为什么下面的代码会导致这个错误: call of overloaded 'QChar(const char[2])' is ambiguous 和代码: void func(QChar a
我正在研究 qt - 在《C++ GUI Programming With Qt 4》一书中,我试图让所有代码都能正常工作。我在将自定义表格小部件中的内容选择转换为纯文本时遇到问题。 书中现有代码:
我是一名优秀的程序员,十分优秀!