Название: extern QListWidget Отправлено: Q6HKi от Март 19, 2010, 22:24 Здравствуйте!
Помогите решить проблему: нужно вне функции main() иметь доступ к объекту QListWidget для вызова selectedItems(), для этого объявляю extern QListWidget, но программа завершатся руганью как на картинке. Как это исправить? (http://s54.radikal.ru/i144/1003/a7/dc92ccefabfa.png) Название: Re: extern QListWidget Отправлено: lit-uriy от Март 19, 2010, 22:37 >>нужно вне функции main() иметь доступ к объекту QListWidget
Что значит "вне функции main()"? до неё? Название: Re: extern QListWidget Отправлено: Q6HKi от Март 19, 2010, 22:47 Нет, в другом файле, в определении слота. Забыл написать, сам QListWidget определен в main()
Название: Re: extern QListWidget Отправлено: lit-uriy от Март 19, 2010, 23:53 >>Нет, в другом файле, в определении слота. Забыл написать, сам QListWidget определен в main()
у меня две мысли: 1) Ты явно не понимаешь элементарных вещей в С++/Qt, поэтому чего-то намудрил 2) Ты очень сильно шаришь и замыслил что-то не тривиальное. Поэтому, расскажи что тебе нужно, а не как ты пытаешься что-то реализовать Название: Re: extern QListWidget Отправлено: Q6HKi от Март 20, 2010, 03:01 Скорее первое, чем второе :D
Программа должна составлять плейлист *.m3u(т.е. вывод пути каждого файла построчно в файл плейлиста). Список файлов выводится в QListWidget, где их можно выбрать и нажать кнопку "Создать". Собственно, уже в программе это можно сделать, НО сигнал currentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous ) отслеживает изменение выбора только одного элемента, поэтому при нажатии Ctrl+A, Shift+PgDown и т.д. добавляются только первый и последний элементы. Решение этой проблемы я вижу в selectedItems(), но, как уже писал выше, она не работает Название: Re: extern QListWidget Отправлено: lit-uriy от Март 20, 2010, 13:17 приведи код файла main.cpp
Название: Re: extern QListWidget Отправлено: Q6HKi от Март 20, 2010, 14:29 Код: #include <QtGui/QApplication> Название: Re: extern QListWidget Отправлено: Авварон от Март 20, 2010, 15:20 на с++ обычно всё-таки всё в мейне не пишут. Надо бы вынести всё в отдельный класс (наследник от QWidget)
сделть метод для доступа к listW и использовать этот метод откуда надо, подключив хедер нового класса Название: Re: extern QListWidget Отправлено: lit-uriy от Март 20, 2010, 15:31 К словам Аварона, добавлю лишь:
Стоит посмотреть примеры Qt в каталоге %QTDIR%/examples и учебные пособия. Особенно обрати внимание на Учебное пособие по виджетам (http://www.doc.crossplatform.ru/qt/4.6.x/widgets-tutorial.html) Да и вообще не принято делать потраха (например, виджет-список) чего-либо доступными напрямую (через указатель или ссылку) из других мест. Лучше сделать метод, который будет доступен извне, для манипуляций с внутренностями. >>Решение этой проблемы я вижу в selectedItems(), но, как уже писал выше, она не работает при создании класса окна (как сказал Аварон, наследника QWidget'a) проблемы вообще не возникнет. Название: Re: extern QListWidget Отправлено: Q6HKi от Март 20, 2010, 15:52 Благодарю за совет, попробую так сделать. А из учебных пособий в основном использую встроенный справочник в QCreator, иногда гугл.
Название: Re: extern QListWidget Отправлено: Авварон от Март 20, 2010, 16:40 там в справке есть раздел examples
вообще даже есть спец программа Qt Demo - сами экзамплы и документация к ним |