2016-07-11 4 views
0

Я ищу, чтобы создать QListWidget в функции, а затем вернуть его. Я получаю эту ошибку: main.cpp: 112: error: не удалось преобразовать 'lw' из 'QListWidget *' в 'QListWidget' return lw;^У кого-нибудь есть идея относительно того, что я делаю неправильно?Как вернуть QtListWidget из функции

моя функция:

Заголовок:

private slots: 
    QListWidget create(); 

каст

QListWidget Main::create(){ 

    QListWidget* lw = new QListWidget; 

    lw->addItem(new QListWidgetItem("one")); 
    lw->addItem(new QListWidgetItem("two")); 
    return lw; 
} 

ответ

3

Ваша функция возвращает указатель на QListWidget, так что вы должны объявить его таким образом:

ч

QListWidget* create(); 

каст

QListWidget* Main::create(){ 
///etc 
3

Метод подписи должен быть:

QListWidget* create(); 

То есть, возвращает указатель. Вы не можете вернуть QListWidget или любые другие не скопированные QObject по стоимости.

0

Вы можете вернуть указатель на свой QListWidget. Вы также можете попытаться создать свой QListWidget над параметром в вашей функции.

void buildListWidget(QListWidget &aListWidget /*referenz to a QListWidget*/) 
{ 
    //add stuff to aListWidget 
} 

Ваш вызов функции, как:

QListWidget list; 
buildListWidget(list); 
//use list 
Смежные вопросы