@sddvxd

Почему в виджете QTabWidget не показывает список строк в виджете QListView?

Добрый день!
Возникла такая проблема: не отображаются элементы QListView, если он находится в виджете QTabWidget

//Заголовочные файлы


#ifndef TABUDOBR_H
#define TABUDOBR_H

#include <QtWidgets>

class TabUdobr : public QWidget
{
    Q_OBJECT
private:
    QListView* pListView;
public:
    explicit TabUdobr(QWidget *parent = nullptr);
signals:

public slots:
};

#endif // TABUDOBR_H

#ifndef TABCOOKING_H
#define TABCOOKING_H

#include <QtWidgets>

class TabCooking : public QWidget
{
    Q_OBJECT
private:
    QLabel* plabel;
public:
    explicit TabCooking(QWidget *parent = nullptr);

signals:

public slots:
};

#endif // TABCOOKING_H


И исходный код:
TabUdobr::TabUdobr(QWidget *parent) : QWidget(parent)
{
    pListView = new QListView;
    QVBoxLayout* playout = new QVBoxLayout;
    QStringListModel model;
    model.setStringList(QStringList() << "Item1" << "Item2" << "Item3");
    QItemSelectionModel itemselect(&model);
    pListView->setModel(&model);
    pListView->setSelectionModel(&itemselect);
    playout->addWidget(pListView);
    setLayout(playout);
}
//main.cpp
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget mainWindow;

    QTabWidget* pbar = new QTabWidget;

    QVBoxLayout* pvboxlay = new QVBoxLayout;
    pbar->addTab(new TabUdobr, "TestTab");
    pvboxlay->addWidget(pbar);
    pvboxlay->addWidget(new TabUdobr);
    mainWindow.setLayout(pvboxlay);
    mainWindow.show();

    return a.exec();
}


В коде выше я создаю виджет, представляющий ссылку. Он содержит QListView с тремя значениями
Если я собираю вот так, то все отображается:

//main.cpp
    QListView* pListView = new QListView;
    QVBoxLayout* playout = new QVBoxLayout;
    QStringListModel model;
    model.setStringList(QStringList() << "Item1" << "Item2" << "Item3");
    QItemSelectionModel itemselect(&model);
    pListView->setModel(&model);
    pListView->setSelectionModel(&itemselect);
    playout->addWidget(pListView);
    mainWindow.setLayout(playout);
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
@sddvxd Автор вопроса
Затупил конкретно... При выходе из конструктора класса все члены, которые не являются членами класса удаляются... Объявил членами класса и присвоил указатели - все работает
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы