Russian Qt Forum
Ноябрь 25, 2024, 20:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableWidget не рисуется таблица  (Прочитано 9489 раз)
bezzil
Гость
« : Сентябрь 25, 2008, 11:43 »

Здраствуйте,
я новенький в Qt библиотеках, помогите пожалуйста со следующей ситуацией.
В программе нада сделать что бы в таблице (QTableWidget ) был представлен весь список файлов диска С.
Стоит Qt 4.4.0 инетгрированный в VS 2005.
Имею следующий код.

Цитировать
int main(int argc, char *argv[])
{
   
   
   QApplication a(argc, argv);
   Table w;
   QDir dir;
   dir.cd("C:/");
   QStringList FileList=dir.entryList();
   QString CurrentDir="C:/";

   QTableWidget *wTable = new QTableWidget;

   QTableWidgetItem *dirItem = new QTableWidgetItem(CurrentDir);
   
   wTable->setItem(0,0,dirItem);

   for (int i=1;i<dir.count();i++)
   {
      QTableWidgetItem *fileItem = new QTableWidgetItem(FileList);
      wTable->setItem(i,2,fileItem);
   }
   QStringList labels;
   labels<<"Disk"<<"Catalog"<<"Catalog/Catalog";
   wTable->setHorizontalHeaderLabels(labels);
   wTable->setMaximumSize(350,500);
   wTable->setMinimumSize(350,500);
   wTable->setWindowTitle("Learninng about Tables");
   wTable->show();
   
   return a.exec();
}

В резултате создаётся окно, но в нём ничего не нарисованно. Итемы вроде бы добавляются и на сколько я понял из примеров задавать колливо строк и столбцов отдельно не нада.
Вопрос такой, как победить таблицу и заставить её появится со всеми итемами дабавленными в неё.

Разабрался, я действительно нуб, с начала нада было задать размеры таблицы, а потом уже добовлять в неё итемы, почему то я решил что это КуТе сделает за меня ...

И как из QDir вытащить название диска в Windows, dirNames() возвращает пустую строку, а что то вроде diskName() я не нашёл.
Заранее спасиба за помощь.
« Последнее редактирование: Сентябрь 25, 2008, 12:02 от bezzil » Записан
spirit
Гость
« Ответ #1 : Сентябрь 25, 2008, 12:00 »

> Итемы вроде бы добавляются и на сколько я понял из примеров задавать колливо строк и столбцов отдельно не нада.
как это не надо? как раз таки и надо
пример из ассистанта
Код:
tableWidget = new QTableWidget(this);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);
Записан
bezzil
Гость
« Ответ #2 : Сентябрь 25, 2008, 12:04 »

спасиба спирит, мне нада было быть внимательнее к документации.
Остался вопрос как получить название диска из QDir и возможно ли это.
Записан
iamfomik
Гость
« Ответ #3 : Сентябрь 25, 2008, 12:05 »

Цитировать
И как из QDir вытащить название диска в Windows, dirNames() возвращает пустую строку, а что то вроде diskName() я не нашёл.


QDir::rootPath ()
Записан
spirit
Гость
« Ответ #4 : Сентябрь 25, 2008, 12:11 »

да и еще, про получение списка дисков
Цитировать
QFileInfoList QDir::drives ()   [static]
Returns a list of the root directories on this system.
On Windows this returns a list of QFileInfo objects containing "C:/", "D:/", etc. On other operating systems, it returns a list containing just one root directory (i.e. "/").
See also root() and rootPath().

примерчег
Код:
foreach (QFileInfo fileInfo, QDir::drives())
           qDebug() << fileInfo.filePath();
« Последнее редактирование: Сентябрь 25, 2008, 12:16 от spirit » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Сентябрь 25, 2008, 14:06 »

В программе нада сделать что бы в таблице (QTableWidget ) был представлен весь список файлов диска С.
Лучше это сделать через Модель/представление.

Тем более что такой пример есть у тролей готовый. См. %QTDIR%\examples\itemviews\dirview
Записан

Юра.
Murru
Гость
« Ответ #6 : Август 17, 2009, 16:42 »

> Итемы вроде бы добавляются и на сколько я понял из примеров задавать колливо строк и столбцов отдельно не нада.
как это не надо? как раз таки и надо
пример из ассистанта
Код:
tableWidget = new QTableWidget(this);
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);

А как быть в том случае, если заранее неясно какого размер получится таблица?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 23.