LINUX.ORG.RU

Как найти кусок кода отвечаеющий за кусок интерфеса?

 , , , ,


0

1

Python, Qt. Есть одна большая таблица, есть вкладка «Статус». В ней есть некая ActionPage, а под ней (под ActionPage) здоровенная таблица которая создается и заполняется динамически, по ходу работы программы.

Вопрос - как найти этот кусок кода, который за нее отвечает? Уже пробовал и по именам методов ActionPage смотреть, искать в этом же файле создание элемента таблицы (и вставку, setItem). Т.е. ActionPage c этой страницей ни как не связана. Пробовал исходя из данных с которыми она работает в БД найти что то - не вышло, видимо скилов маловато, начать с веточки и прийти к корню. Короче, я уже кучу всего пробовал, советуйте что нибудь.

Deleted

не знаю как в pyqt, но если говорить о виджетах в qt c c++, то код там генерится qmake-ом из xml-подобного файла ui.

Blastbit ()
Ответ на: комментарий от Blastbit

не знаю как в pyqt, но если говорить о виджетах в qt c c++, то код там генерится qmake-ом из xml-подобного файла ui.

Блин, я знаю как генерируются файлики с интерфейсом из qtовских *.ui. Таблица создается и заполняется динамически, т.е. не qt creatorom.

Deleted ()
Ответ на: комментарий от Deleted

Ну вполне возможно, что создание и заполнение таблицы идет как реакция на какой-нибудь сигнал. Посмотри, какие там есть сигналы, с какими слотами они связаны...

Так, на самом деле, очень сложно гадать. Ну или у меня libastral устарел.

solovey ★★ ()
Ответ на: комментарий от solovey

Ну вполне возможно, что создание и заполнение таблицы идет как реакция на какой-нибудь сигнал. Посмотри, какие там есть сигналы, с какими слотами они связаны...

Ага, найти бы еще эти сигналы... Сейчас решил все выводом в консоль обложить, пусть гадит, может проще найти будет.

Deleted ()

Вот к примеру тут http://zetcode.com/gui/pyqt4/dialogs/

Проверяется if ok: и действие далее, может попробуешь в этом плане попробовать

cat main.py | grep if для начала, по быстрому.

Dron ★★★★★ ()
Ответ на: комментарий от Deleted

Сейчас решил все выводом в консоль обложить, пусть гадит, может проще найти будет

С вывода в консоль стоило начинать =)

solovey ★★ ()
Ответ на: комментарий от Dron

cat main.py | grep if для начала, по быстрому.

Да у меня ж на практике комп с виндой, ставить юникс-утилиты лень. Да и к тому же, это писец получится, там тыщи строк будут.

Deleted ()
Ответ на: комментарий от solovey

С вывода в консоль стоило начинать =)

Угу. Натыкал print'ов, как мне думалось, в нужные места - конструкторы некоторых классов. Само собой, ни хрена не пишет в консоль. Причем классы реально ходовые, афигеть.

Разбирать здоровенный проект по полочкам без документации - это весело!

Deleted ()
Ответ на: комментарий от Deleted

Да у меня ж на практике комп с виндой

Оу, сочувствую.

Dron ★★★★★ ()
Ответ на: комментарий от Dron

Ага, кстати, как называется весь этот набор юниксовых утилит типа grep, awk, |, >, ls?

Deleted ()
Ответ на: комментарий от Deleted

http://ru.wikipedia.org/wiki/GNU_Coreutils

Для win есть http://gnuwin32.sourceforge.net/packages/coreutils.htm

или более популярное http://www.cygwin.com/ http://ru.wikipedia.org/wiki/Cygwin

Но ничего для win я не пробовал, win у меня нету.

Dron ★★★★★ ()
Последнее исправление: Dron (всего исправлений: 2)

Таблица у тебя - QTableView, наполняет ее данными модель. Нечто, производное от QAbstractItemModel. Грепай имена по слову model, думаю что-нибудь да найдешь.

m0rph ★★★★★ ()
Ответ на: комментарий от Deleted

Натыкал print'ов, как мне думалось, в нужные места - конструкторы некоторых классов. Само собой, ни хрена не пишет в консоль. Причем классы реально ходовые, афигеть.

Может там весь вывод в какой-нибудь лог перенаправляется? И почему print'ы? Почему не qDebug(), qWarning() и т.д.?

Кстати, для qDebug'а и остальных можно написать собственный обработчик сообщений и писать их, куда хочешь. Гугли по qInstallMsgHandler

solovey ★★ ()

Проще начинать поиск со строк используемых в интерфейсе, например упоминаемая «Статус».

HighwayStar ★★★★★ ()
Ответ на: комментарий от HighwayStar

Пробовал, их там в проекте под сотню.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.