(154)理論講解 :
++ 例題程序的界面搭建 :
(155)以下開始完善代碼 ,先準備要給 model 的源數據,一些字符串 :
++ 給出該頭文件,以全面展示其內容:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QStringListModel>
#include <QStringList>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTprivate:QStringList m_strList; //保存初始 StringList//這樣的成員對象而非成員指針,會在程序退出時自動析構,不會內存泄露QStringListModel * m_model ; //數據模型public:MainWindow(QWidget * parent = nullptr);~MainWindow();private slots:void on_btnIniList_clicked();void on_btnListAppend_clicked();void on_btnListInsert_clicked();void on_btnListDelete_clicked();void on_btnListClear_clicked();void on_listView_clicked(const QModelIndex &index);void on_btnTextClear_clicked();void on_btnTextImport_clicked();void on_btnListSort_clicked(bool checked);void on_btnListMoveUp_clicked();void on_btnListMoveDown_clicked();void on_chkEditable_clicked(bool checked);private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
++ 在本類的構造函數里完成源數據的生成, model 的生成并綁定源數據,并把視圖綁定到 model 并設定視圖的修改觸發模式 :
++ 恢復與清除按鈕 :
++允許編輯復選框 :
++添加項按鈕 :
++ 插入項按鈕 :
++ 刪除項按鈕 :
++ 上移與下移按鈕 :
++排序按鈕 :
++代碼實現 :
++排序效果 :
(156)完善右邊的管理文本框的按鈕的信號與槽函數 :
(157)當敲擊 view 中的項時,狀態欄會發生變化 :
++
++至此,完畢,本例題項目結束。
(158)
謝謝