{"id":335,"date":"2017-04-17T13:31:10","date_gmt":"2017-04-17T13:31:10","guid":{"rendered":"http:\/\/emacslisp.com\/?p=335"},"modified":"2017-04-17T13:31:24","modified_gmt":"2017-04-17T13:31:24","slug":"qt-listview-setmodel-tip","status":"publish","type":"post","link":"http:\/\/emacslisp.com\/?p=335","title":{"rendered":"Qt &#8211; ListView SetModel tip"},"content":{"rendered":"<p>when developing qt, QStringList should be display on &#8216;ui->listView&#8217;, However,  following code won&#8217;t work.<\/p>\n<pre lang=\"cpp\" line=\"1\">\r\nMainWindow::MainWindow(QWidget *parent) :\r\n    QMainWindow(parent),\r\n    ui(new Ui::MainWindow)\r\n{\r\n...\r\n    QDir myDir(\"C:\\\\\");\r\n\r\n    QStringList filter(\"*\");\r\n    QStringListModel model;\r\n    QStringList filesList = myDir.entryList(QStringList(filter),QDir::Files | QDir::Dirs);\r\n    model.setStringList(filesList);\r\n    ui->listView->setModel(&model);\r\n...\r\n}\r\n\r\n<\/pre>\n<p>because &#8216;model&#8217; object will be delete after function is done.<\/p>\n<p>ui->listView will not be able to get model object.<\/p>\n<p>move to MainWindow &#8216;model&#8217; to MainWindow declare will be good.<\/p>\n<pre lang=\"cpp\" line=\"1\">\r\n\r\nclass MainWindow : public QMainWindow\r\n{\r\n    Q_OBJECT\r\n\r\npublic:\r\n    explicit MainWindow(QWidget *parent = 0);\r\n    ~MainWindow();\r\n    QStringListModel model;\r\nprivate:\r\n    Ui::MainWindow *ui;\r\n};\r\n\r\n\r\nMainWindow::MainWindow(QWidget *parent) :\r\n    QMainWindow(parent),\r\n    ui(new Ui::MainWindow)\r\n{\r\n...\r\n    QDir myDir(\"C:\\\\\");\r\n\r\n    QStringList filter(\"*\");\r\n    \r\n    QStringList filesList = myDir.entryList(QStringList(filter),QDir::Files | QDir::Dirs);\r\n    model.setStringList(filesList);\r\n    ui->listView->setModel(&model);\r\n...\r\n}\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>when developing qt, QStringList should be display on &#8216;ui->listView&#8217;, However, following code won&#8217;t work. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { &#8230; QDir myDir(&#8220;C:\\\\&#8221;); QStringList filter(&#8220;*&#8221;); QStringListModel model; QStringList filesList = myDir.entryList(QStringList(filter),QDir::Files | QDir::Dirs); model.setStringList(filesList); ui->listView->setModel(&#038;model); &#8230; } because &#8216;model&#8217; object will be delete after function is done. ui->listView will not be able to get [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-335","post","type-post","status-publish","format-standard","hentry","category-qt"],"_links":{"self":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts\/335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=335"}],"version-history":[{"count":1,"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts\/335\/revisions"}],"predecessor-version":[{"id":336,"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts\/335\/revisions\/336"}],"wp:attachment":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=335"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}