青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

zhonghua

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  72 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks
    QDataWidgetMapper將一個(gè)數(shù)據(jù)庫記錄字段反映到其映射的窗口部件中,同時(shí)將窗口部件中所做出的更改反映回?cái)?shù)據(jù)庫,關(guān)鍵是關(guān)聯(lián)一個(gè)model和一組widget
一、步驟

1、創(chuàng)建 QDataWidgetMapper 對象
2、關(guān)聯(lián) model
3、關(guān)聯(lián) widgets,并創(chuàng)建其與model中section的映射
4、定位到某個(gè)record

  1. QDataWidgetMapper *mapper = new QDataWidgetMapper;  
  2. mapper->setModel(model);  
  3. mapper->addMapping(mySpinBox, 0);  
  4. mapper->addMapping(myLineEdit, 1);  
  5. mapper->toFirst();  


提交方式可以設(shè)為手動:

  1. mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);  


 QComboBox組件的mapper比較特殊

第一種、在關(guān)系模型中實(shí)現(xiàn)mapper到QComboBox組件

  1. QSqlRelationalTableModel *model = QSqlRelationalTableModel(this);  
  2.   
  3. model->setTable("員工表");  
  4. model->setRelation(dep_id,QSqlRelation("部門表","id","name"));  
  5.  // ... 其它代碼  
  6.   
  7. //QComboBox與QListWidget很相擬,因?yàn)樗幸粋€(gè)內(nèi)部模型去保存它的數(shù)據(jù)條目,所以我們用自己建的模型代替那個(gè)自帶的模型。給出QSqlRelationalTableModel使用的關(guān)系模型,這個(gè)模型有兩列,必須指出組合框應(yīng)該顯示哪一列  
  8. QSqlTableModel *relationModel = model->relationModel(dep_id); // 部門ID  
  9. comboBox->setMode(relationModel);  
  10. comboBox->setModelColumn(relationModel->fieldIndex("name")); // 使用字段名得到正確的標(biāo)題索引,以使組合框顯示部門名  

 

第二種、使用代理的方式

1、實(shí)現(xiàn)自定義代理類,實(shí)現(xiàn)setEditorData()和setModelData()

2、給模型添加我們自己的代理類對象

  1. MapDelegate *delegate = new MapDelegate(this); // 生成自定義的代理類對象  
  2. mapper->setItemDelegate(delegate); // 給模型添加我們自己的代理類  
  1. void MapDelegate::setEditorData(QWidget *editor, const QModelIndex& index) const{  
  2.     if(index.column() == 0) // 假如模型的第0列為公司名   
  3.     {  
  4.         QComboBox *comboEditor = qobject_cast<QComboBox *>(editor);  
  5.         if (comboEditor)  
  6.         {  
  7.             int i = comboEditor->findText(index.model()->data(index, Qt::EditRole).toString()); // 在comboBox組件中查找model中的當(dāng)前公司名  
  8.        comboEditor->setCurrentIndex(i); // 設(shè)成model中的當(dāng)前公司名  
  9.         }         
  10.     }  
  11.     else  
  12.     {  
  13.         return QItemDelegate::setEditorData(editor, index);  
  14.     }  
  15. }  
  16.   
  17. void MapDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex& index) const  
  18. {  
  19.     if(index.column() == 0)  
  20.     {  
  21.         QComboBox *comboBox = qobject_cast<QComboBox *>(editor);  
  22.         if(comboBox)  
  23.         {  
  24.             model->setData(index, comboBox->currentText());  
  25.         }  
  26.     }  
  27.     else  
  28.     {  
  29.         return QItemDelegate::setModelData(editor, model, index);  
  30.     }  
  31. }  
posted on 2012-04-24 15:28 米米 閱讀(423) 評論(0)  編輯 收藏 引用 所屬分類: qt
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品一区二| 欧美激情区在线播放| 欧美日韩成人在线观看| 欧美激情视频给我| 欧美日韩一区二区三区四区五区| 免费欧美日韩| 欧美日韩综合在线| 国产精品永久免费观看| 国产精品一区二区三区久久| 国产日韩欧美制服另类| 黄色成人在线观看| 亚洲美女在线视频| 午夜免费久久久久| 免费观看亚洲视频大全| 亚洲美女电影在线| 久久xxxx精品视频| 欧美xart系列高清| 国产日韩av一区二区| 亚洲日本在线观看| 欧美综合国产精品久久丁香| 久久久久九九九| 91久久精品www人人做人人爽| 亚洲精品影视在线观看| 先锋影音久久久| 欧美片在线播放| 国产主播在线一区| 亚洲午夜久久久久久久久电影网| 久久久国产精品一区二区三区| 亚洲高清视频一区| 亚洲第一精品电影| 午夜日韩视频| 亚洲国产mv| 欧美专区亚洲专区| 欧美性开放视频| 亚洲精品国产精品乱码不99| 欧美在线精品免播放器视频| 亚洲日本中文字幕免费在线不卡| 欧美一级网站| 国产精品免费看久久久香蕉| 日韩视频免费看| 欧美xart系列高清| 欧美一区二区视频在线| 欧美特黄视频| 亚洲香蕉网站| 99综合精品| 欧美freesex8一10精品| 激情久久久久久| 久久久久免费观看| 亚洲欧美日韩中文视频| 国产精品久久久久久久久久免费| 亚洲精品字幕| 亚洲人成欧美中文字幕| 欧美激情一区| 日韩亚洲欧美综合| 亚洲精品美女久久久久| 欧美日韩国产麻豆| 一区二区三区毛片| 日韩西西人体444www| 欧美久久影院| 亚洲影院在线| 午夜精品三级视频福利| 国产麻豆日韩欧美久久| 欧美在线视频不卡| 欧美一区二区日韩| 好吊成人免视频| 欧美aⅴ一区二区三区视频| 久久中文字幕一区| 亚洲精品一区二区三区在线观看| 欧美激情小视频| 欧美日韩国产在线一区| 亚洲一区欧美二区| 香蕉久久a毛片| 在线成人小视频| 亚洲美女毛片| 国产精品爽黄69| 久久久视频精品| 欧美成人午夜77777| 妖精视频成人观看www| 一本色道久久综合狠狠躁篇的优点| 欧美视频在线一区二区三区| 亚洲专区在线视频| 久久国产精品99国产精| 亚洲精华国产欧美| 中日韩视频在线观看| 国产亚洲一级| 亚洲精品一区二区三区在线观看 | 欧美1区2区3区| 欧美日韩一区二区三区高清| 国产精品多人| 欧美一区二区视频在线观看| 久久国产精品一区二区| 亚洲人成毛片在线播放| 亚洲一级电影| 亚洲国产精品va在线看黑人| 99re66热这里只有精品3直播| 国产日韩欧美亚洲| 亚洲激情社区| 国产午夜一区二区三区| 亚洲第一主播视频| 国产视频在线一区二区| 亚洲国产三级| 国产亚洲精品福利| 亚洲免费久久| **网站欧美大片在线观看| 在线亚洲精品福利网址导航| 1024成人| 欧美一区二视频| 亚洲色在线视频| 免费观看在线综合| 久久精品夜色噜噜亚洲aⅴ| 欧美精品在线播放| 欧美岛国激情| 国产有码在线一区二区视频| 99精品视频免费| 亚洲毛片在线| 卡一卡二国产精品| 久久免费偷拍视频| 国产欧美日韩高清| 亚洲深夜av| 亚洲午夜三级在线| 欧美裸体一区二区三区| 欧美成年人视频| 激情成人av在线| 久久gogo国模裸体人体| 欧美一区二区三区在线看 | 99re6热只有精品免费观看| 尤妮丝一区二区裸体视频| 亚洲欧美日韩中文播放| 午夜精品福利视频| 欧美日韩在线一区| 亚洲乱码国产乱码精品精98午夜| 亚洲国产日韩精品| 欧美成人蜜桃| 亚洲国产影院| 日韩视频一区二区在线观看| 女人香蕉久久**毛片精品| 卡通动漫国产精品| 亚洲高清av在线| 你懂的视频欧美| 亚洲精品日韩激情在线电影| 一区二区三区欧美激情| 欧美喷潮久久久xxxxx| 亚洲乱码精品一二三四区日韩在线 | 欧美日韩国产综合新一区| 亚洲欧洲精品一区| 亚洲视频在线看| 国产精品毛片a∨一区二区三区|国 | 久久久亚洲影院你懂的| 久久精品二区| 久久亚洲国产精品日日av夜夜| 国产亚洲欧美激情| 久久久久久久久一区二区| 欧美大片免费| 亚洲无限av看| 国产欧美一区二区三区在线看蜜臀| 先锋资源久久| 亚洲高清视频在线| 这里是久久伊人| 国产伪娘ts一区| 美腿丝袜亚洲色图| 日韩一级黄色大片| 欧美一级在线播放| 伊人久久综合97精品| 欧美激情成人在线| 亚洲欧美乱综合| 欧美国产在线视频| 亚洲欧美激情在线视频| 一色屋精品视频在线观看网站| 欧美久久视频| 欧美一区二区在线观看| 91久久黄色| 久久一区二区视频| 洋洋av久久久久久久一区| 国内精品久久久久影院薰衣草| 欧美福利视频在线| 香蕉av福利精品导航| 亚洲精品在线一区二区| 久久久久九九九| 中文一区二区| 亚洲国产美女| 国产视频精品va久久久久久| 欧美经典一区二区三区| 午夜日韩电影| 日韩性生活视频| 欧美成人网在线| 久久久久久久国产| 亚洲欧美日韩综合aⅴ视频| 亚洲人成77777在线观看网| 国产三区精品| 国产伦精品一区二区三区视频黑人 | 久久久久久久一区| 亚洲午夜在线观看视频在线| 亚洲丰满在线| 国内精品久久久久伊人av| 国产精品久久波多野结衣| 欧美国产免费| 久久亚洲免费| 久久久久九九九| 欧美一区二视频在线免费观看| 亚洲视频精品|