Название: Преобразование типа Отправлено: dsp от Июнь 09, 2011, 12:22 Хочу что бы в ячейку таблицы выводился размер файла и соответствующая единица измерения.
Сделал так (может как-то проще можно сделать): Код: qint64 size = QFileInfo(currentDir.absoluteFilePath(file)).size(); Но конечное значение, естественно, обрезается до целого, если начинать делить. получается 1.0000 МБ. 1.0000 КБ Как быть? Название: Re: Преобразование типа Отправлено: GreatSnake от Июнь 09, 2011, 12:36 Тролли вот так делают:
Код
Название: Re: Преобразование типа Отправлено: dsp от Июнь 09, 2011, 12:59 спасибо, но просто сделал так qreal(size)... работает спс.
Цитировать qint64 size = QFileInfo(currentDir.absoluteFilePath(file)).size(); QString sizeMKB; QString MKB[3] = {"MB", "KB", "B"}; if(size > 1024*1024 - 1) sizeMKB = QString::number(qreal(size)/(1024*1024), 'f', 1) + " " + MKB[0]; else if(size > 1023) sizeMKB = QString::number(qreal(size) / 1024, 'f', 1) + " " + MKB[1]; else if(size < 1024) sizeMKB = QString::number(qreal(size)) + " " + MKB[2]; QTableWidgetItem *sizeItem = new QTableWidgetItem(sizeMKB); Название: Re: Преобразование типа Отправлено: GreatSnake от Июнь 09, 2011, 13:04 Цитировать QTableWidgetItem *sizeItem = new QTableWidgetItem(QString("%1").arg(sizeMKB)); Какой смысл делать копию sizeMKB?Название: Re: Преобразование типа Отправлено: dsp от Июнь 09, 2011, 13:14 Цитировать QTableWidgetItem *sizeItem = new QTableWidgetItem(QString("%1").arg(sizeMKB)); Какой смысл делать копию sizeMKB?так лучше Код: QTableWidgetItem *sizeItem = new QTableWidgetItem(sizeMKB) |