June 20, 2012

mehrzad mehrzad
Lab Rat
1 posts

خواندن و نوشت در tableView

 

با سلام
اگه ممکن هست دوستان در مورد نوشتن محتویات یک
tableView
درفایل و خواندن ان راهنمایی بفرمایند ممنون میشم

2 replies

June 21, 2012

Mahdi Mahdi
Lab Rat
121 posts

سلام
راه های مختلفی برای این کار وجود داره. مثلا کدهای زیر محتویات Table View رو به فرمت html ذخیره میکنه

  1. void saveTableView2Html()
  2. {
  3.     const QString htmlFileName = QFileDialog::getSaveFileName(...);
  4.     if( htmlFileName.isEmpty() )  // کاربر کنسل کرده است
  5.         return;
  6.  
  7.     QFile file(htmlFileName);
  8.     if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
  9.         //خطایی رخ داده است
  10.         return ;
  11.     }
  12.  
  13.     QTextStream out(&file);
  14.     out.setCodec("UTF-8");
  15.  
  16.     const int rowCount    = tableView->model()->rowCount();
  17.     const int columnCount = tableView->model()->columnCount();
  18.  
  19.     out <<  "<html>\n"
  20.             "<head>\n"
  21.             "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"
  22.          <<  QString("<title>%1</title>\n").arg(QFileInfo(file.fileName()).fileName())
  23.           <<  "</head>\n"
  24.               "<body dir=\"rtl\" bgcolor=#ffffff link=#5000A0>\n"
  25.               "<font face=\"Tahoma, Geneva, sans-serif\">\n"
  26.               "<table border=1 cellspacing=0 cellpadding=10>\n";
  27.  
  28.     // جدول (header) هدر
  29.     out << "<tr bgcolor=#f0f0f0>";
  30.     for (int column = 0; column < columnCount; column++)
  31.         if (!tableView->isColumnHidden(column))
  32.             out << QString("<th>%1</th>").arg(tableView->model()->headerData(column, Qt::Horizontal).toString());
  33.     out << "</tr>\n";
  34.     file.flush();
  35.  
  36.     // داده های جدول
  37.     for (int row = 0; row < rowCount; row++) {
  38.         out << "<tr>";
  39.         for (int column = 0; column < columnCount; column++) {
  40.             if (!tableView->isColumnHidden(column)) {
  41.                 QString data = tableView->model()->data(
  42.                             tableView->model()->index(row, column)).toString() ;
  43.  
  44.                 out << QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString(""));
  45.             }
  46.         }
  47.         out << "</tr>\n";
  48.     }
  49.     out <<  "</table>\n"
  50.             "</font>"
  51.             "</body>\n"
  52.             "</html>\n";
  53.     file.close();
  54.  
  55.     qApp->beep();
  56.     QDesktopServices::openUrl(QUrl("file:///" + htmlFileName
  57.                                    ,QUrl::TolerantMode));
  58. }

 Signature 

QtSDK 1.2 + MinGW + Desktop !

June 21, 2012

Mahdi Mahdi
Lab Rat
121 posts

بیشتر به این قسمت توجه کن:

  1.     for (int row = 0; row < rowCount; row++) {
  2.         for (int column = 0; column < columnCount; column++) {
  3.             if (!tableView->isColumnHidden(column)) {
  4.                 QString data = tableView->model()->data(
  5.                             tableView->model()->index(row, column)).toString() ;

 Signature 

QtSDK 1.2 + MinGW + Desktop !

 
  ‹‹ به دست آوردن محتوای یو ارال      مدرس کیوت ››

You must log in to post a reply. Not a member yet? Register here!