2015-11-10 14 views
2

Я использовал qt 5.1.1 в течение 2 лет на Ubuntu. теперь я устанавливаю на него qt 5.5. (Я имею в виду, что обе версии существуют на моем Ubuntu) на самом деле эта версия Qt-рамки не работает так же хорошо, как и старая. , поэтому я хочу использовать qt 5.1.1.что случилось с setSectionResizeMode в qt?

Проблема заключается в том, что здесь теперь я имею ошибку ниже на мой код:

код:

_headerView->setSectionResizeMode(QHeaderView::Stretch); 

ошибка:

... error: 'class QHeaderView' has no member named 'setSectionResizeMode' 

this answer on this site я нашел. но на самом деле я не понимаю, как решить проблему! Он просто говорит о своей причине.

PS: Я хочу, чтобы эта строка кода растягивала мою таблицу в моем окне.

+2

попробуйте использовать 'setResizeMode' –

ответ

3

Эта ошибка может случиться, если на вашем компьютере установлена ​​две или более версии qt.
setResizeMode - это старая функция, которая переопределяет в новых версиях и изменяет ее имя на setSectionResizeMode. Самый безопасный способ решить эту проблему - использовать setResizeMode, что вы можете быть уверены, что он будет доступен любым Qt от 5 и более поздних версий.

+1

Я не понимаю, как это может быть принятым решением. Все дело в том, что 'setResizeMode()' был заменен на 'setSectionResizeMode()' и устарел в Qt 5.0 --- см. Http://doc.qt.io/qt-5/qheaderview-obsolete.html. По крайней мере, сейчас (Qt 5.7.1) 'setResizeMode()' не существует, поэтому «самый безопасный способ решить эту проблему - использовать setResizeMode, чтобы вы могли быть уверены, что он будет доступен любому Qt от 5 и позже» совершенно неверно, поскольку вы, безусловно, не можете быть уверены, что устаревшая функция будет доступна в Qt 5 или более поздней версии. – JonBrave