私のプロジェクトには listWidget があります。ユーザーがリスト内の項目をクリックすると、これが読み込まれます。
void BlockSelect::on_blockList_clicked(const QModelIndex &index)
{
QString blockListName;
QString temp_hex;
QString temp_hex2;
int temp_int;
QListWidgetItem *newitem = ui->blockList->currentItem();
blockListName = newitem->text();
temp_hex = blockListName.mid(0, blockListName.indexOf(" "));
if(temp_hex.indexOf(":") == -1)
{
temp_int = temp_hex.toInt();
ui->blockIdIn->setValue(temp_int);
ui->damageIdIn = 0;
}
else
{
temp_hex2 = temp_hex.mid(temp_hex.indexOf(":")+1, temp_hex.length()-(temp_hex.indexOf(":")+1));
temp_hex = temp_hex.mid(0, temp_hex.indexOf(":"));
temp_int = temp_hex.toInt();
ui->blockIdIn->setValue(temp_int);
temp_int = temp_hex2.toInt();
ui->damageIdIn->setValue(temp_int);
}
}
これのほとんどは単なる文字列操作です。(この構文などを勉強する必要はありません)
私の問題は、ユーザーが別のリスト項目をすばやく (この現在のプロセスが終了する前に) クリックすると、プログラムがクラッシュすることです。高速クリック (一度に複数のプロセス) または代替ソリューションを許可する方法はありますか?
御時間ありがとうございます :)