我正在尝试将选项卡上显示的文本设置为这样的
~Untitled(n)
Run Code Online (Sandbox Code Playgroud)
其中“n”是选项卡的索引。我在连接字符串和整数时遇到问题。这是我尝试过的。
armaTab->addTab(new QWidget, "~Untitled (" + QString(armaTab->currentIndex() + 1) + ")");
Run Code Online (Sandbox Code Playgroud)
有了这个,我最终得到了这样的东西:
~Untitled([])
Run Code Online (Sandbox Code Playgroud)
连接字符串和整数以产生所需结果的正确方法是什么?
在我的 Qt5.6.1 程序中,我必须从 QString 获取 Sha-1 哈希值,但我得到的结果不正确。我正在尝试使用 QCryptographicHash 库。
QString str = "ABCDEFGH";
QString hash = QString::fromStdString(QCryptographicHash::hash(str.toStdString().c_str(), QCryptographicHash::Sha1).toStdString());
// hash == "?^??[?\u0000??v??\u0015??.b??v"
Run Code Online (Sandbox Code Playgroud)
在这种情况下我应该改变什么?
我想将十六进制和 utf16 编解码器中的字符串转换为 QString,例如我从这段代码中实现的:
QString str1 = QString::fromWCharArray(L"\x0633\x0644\x0627\x0645"); // what I want
Run Code Online (Sandbox Code Playgroud)
但是当我尝试以下代码时,一切都出错了,这样做的正确方法是什么。
QByteArray hex = QByteArray::fromHex("0633064406270645");
// wrong text in str2 it should be equal to str1
QString str2 = QString::fromUtf16((char16_t*)hex.data());
Run Code Online (Sandbox Code Playgroud) 有两个值:
QString str1 = "3.5.8", str2 = "20.3.6";
Run Code Online (Sandbox Code Playgroud)
让我们想象一下,这两个numbers代表了软件version。
众所周知,QString逐个字符进行比较。
如果我们以这种方式做出这个决定会怎么样:
str1.replace(".","");
str2.replace(".","");
int n = str1.toInt();
int m = str2.toInt();
if (n >= m)
{
qDebug() << "YES";
} else if (n <= m) {
qDebug() << "NO";
}
Run Code Online (Sandbox Code Playgroud)
也许有一个更优化和正确的方法来做到这一点。
您能否告诉我如何将这些值转换为数字,以便可以对它们进行整体比较。谢谢。
我有一个QHash<QString,QString>.我使用以下表达式来检查是否存在值QHash::keys().
//programme
QHash<QString,QString> samplehash;
QString value = "somevalue";
if(samplehash.contains(value)) // Condition - 1
{
//some code
}
Run Code Online (Sandbox Code Playgroud)
有时上述条件匹配,有时不适用于不同案例的相同字母.是QHash::contains方法是否区分大小写?
可能重复:
使用整数连接两个QStrings
我期待在QT中创建一个3个整数和一个c ++ stl字符串的字符串,我该怎么做?有谁知道?,找不到解释这个过程的东西?
这是我的代码是我在lsit中创建元素,但我想打印所有元素和他们的属性不仅名称:
void Window::listMovies(){
ui->listMovies->clear();
vector <Movie> all = ctrl->getAllMovies();
for(int i=0; i <(int) all.size();i++){
QListWidgetItem*item = new QListWidgetItem(
QString::fromStdString(all[i].getName()),ui->listMovies);
item->setData(Qt::UserRole,QVariant::fromValue(all[i].getID()));
Run Code Online (Sandbox Code Playgroud)
电影对象有1个字符串和3个整数变量.
我想将QString中的值赋给const std :: string
QString qfile("some value");
Run Code Online (Sandbox Code Playgroud)
这是const std :: string变量
const std::string file
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码
file = qfile.toStdString();
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于普通的std :: string.但由于关键字'const'存在一些问题.我该如何解决?
我有QMap的问题.每个键都有很多值.我们的想法是用唯一键显示所有值.要使用QtGui应用程序遍历此映射,我有TextEdit(名称:t2).代码在按钮内部如下:
void MainWindow::on_push2_clicked()
{
QMap<int, QStringList> myMaps;
myMaps[1].append("Autodesk Maya 2014");
myMaps[1].append("Autodesk Inventor 2014");
myMaps[1].append("Autodesk Alias 2014");
myMaps[1].append("Autodesk 3ds Max 2014");
myMaps[1].append("Autodesk Softimage 2014");
myMaps[2].append("Adobe Photoshop CS6");
myMaps[2].append("Adobe Illustrator CS6");
myMaps[2].append("Adobe InDesign CS6");
myMaps[1].append("Autodesk AutoCAD 2014");
QStringList stsl; // the StringList which contains all values
QMap<int, QStringList>::iterator it;
for (it=myMaps.begin(); it!=myMaps.end(); ++it) {
QString qsi=QString::number(it.key());
QString qs=it.value().join(" - ");
stsl << "<span style='color:#FF1000;font-weight:bold;'>"+qsi + " : </span>"+ qs;
}
QString st4=stsl.join("<br/>"); //With setHtml
ui->t2->setHtml(st4);
}
}
Run Code Online (Sandbox Code Playgroud)
//输出:1:Autodesk Maya 2014 - Autodesk …
我在Qt应用程序中使用opencv.我已经看到了一些通用的c ++方法来打印Mat的值,并且已经这样做了
cout << "myMat = "<< endl << " " << myMat << endl << endl;
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以使用此Mat的内容获得QString.有一个巧妙的方法来做到这一点?
我正在制作一个哈希,它允许你通过输入包含其字符的QString来查找下面看到的描述.
我得到了相关数据的完整列表,看起来像这样:
QHash<QString, QString> lookupCharacterDescription;
...
lookupCharacterDescription.insert("003F","QUESTION MARK");
lookupCharacterDescription.insert("0040","COMMERCIAL AT");
lookupCharacterDescription.insert("0041","LATIN CAPITAL LETTER A");
lookupCharacterDescription.insert("0042","LATIN CAPITAL LETTER B");
...
lookupCharacterDescription.insert("1F648","SEE-NO-EVIL MONKEY");
lookupCharacterDescription.insert("1F649","HEAR-NO-EVIL MONKEY");
lookupCharacterDescription.insert("1F64A","SPEAK-NO-EVIL MONKEY");
lookupCharacterDescription.insert("1F64B","HAPPY PERSON RAISING ONE HAND");
...
lookupCharacterDescription.insert("FFFD","REPLACEMENT CHARACTER");
lookupCharacterDescription.insert("FFFE","<not a character>");
lookupCharacterDescription.insert("FFFF","<not a character>");
lookupCharacterDescription.insert("FFFFE","<not a character>");
lookupCharacterDescription.insert("FFFFF","<not a character>");
Run Code Online (Sandbox Code Playgroud)
现在显然"1F64B"需要在这里包装一些东西.我曾尝试过像0x1F64BQChar 这样的事情,但我老实说,在这里黑暗中摸索.我可以使用像拉丁字母这样较低的值来工作,但它失败了5个字符的地址.
1F64B?