Я пишу простое приложение, использующее QT, которое должно записывать положение мыши внутри определенного виджета в файл (запись производится по двойному щелчку пользователя).
Ситуация следующая:
- Пользователь выполняет двойной щелчок внутри виджета.
- В окне отладки я вижу текущее положение мыши.
- Положение мыши записывается в файл, как и ожидалось.
Проблема, когда положение мыши (X или Y) меньше 100. Если положение меньше 100, число, записываемое в файл, всегда равно 3 цифрам.
Например: позиция мыши в окне отладки: 34, 251, а в файле - 344, 251. Поэтому я не могу предсказать если фактическая позиция X была 34 или 344. Потому что они оба являются действительными значениями.
Это часть, которая отвечает за запись данных в файл.
QByteArray temp1;
char buf[2];
::sprintf(buf, "%d", X); // X is the mouse x position
temp1.append(buf);
temp1.append(",");
::sprintf(buf, "%d", Y); // Y is the mouse y position
temp1.append(buf);
...
if (tempFile.open(QIODevice::ReadWrite)) {
QTextStream stream(&tempFile);
stream << temp1;
}
tempFile.close();
Этот код работает хорошо только для позиций больше 100 почему-то.
Спасибо