(154)理论讲解 :
++ 例题程序的界面搭建 :
(155)以下开始完善代码 ,先准备要给 model 的源数据,一些字符串 :
++ 给出该头文件,以全面展示其内容:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStringListModel>
#include <QStringList>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
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)
谢谢