Форум сайта python.su
Пишу многооконное приложение ( интерфейс для общения с плк по rs485), окна создавал в at designed. Окна открываю через окно.show() и закрываю предыдущее окно.hide(). В зависимости от полученных данных в метках меняются текст и цвет. Так вот через некоторое время пропадают все стили: и радиусы бордюров и цвета текста и фона. Если менять только текст, всë нормально работает. Ни как не пойму от чего это зависит. Если кто сталкивался, подскажите. Заранее спасибо
Офлайн
Стандартная проблема ноичков.
Сразу скажу что необходимо заменить С6 и и тогда ампфильтер перестанет давать наводки.
Но!
Нужно делать все грамотно
По этому попробуйте для начала выложить код;
Офлайн
Вам только основную простыню, или подключаемые файлы тоже?
Офлайн
И подскажите “заменить С6” это что значит?
Офлайн
в этом файле вся основная логика.
Прикреплённый файлы:
comport.py (23,6 KБ)
Офлайн
> И подскажите “заменить С6” это что значит?
Это так над тобой издеваются.
> закрываю предыдущее окно.hide()
hide не закрывает окно, а скрывает его. Используй QDialog (в первую очередь смотри на методы accept и reject) в место QMainWindow.
> в этом файле вся основная логика.
Основная проблема глобальные переменные и вся сопутствующая логика. Их в нормальном коде вообще не должно быть. QMainWindow должен быть только один и у основного окна.
По стилям - у тебя должен быть один общий файл со стилями. В симих стилях нужно указывать для каких конкретно виджетах они предназначены, например - “QLabel {background-color: #00aa00; color: white;}”
Офлайн
я так понимаю, что мне нужно оставить одно стартовое окно с классом QMainWindow, а остальные переделать на QDialog.
со стилями немного непонятно, т.к. все стили я устанавливаю в Qt Designed и они получается лежат в своих файликах, а я в зависимости от данных меняю стили и возвращаю их обратно
я скорее всего не до конца понимаю философию python, поэтому возникает данная каша, и взяв питона за горло он начал задыхаться))))
могли бы Вы накидать примерную структуру моего проекта для понимания в каком файле что писать. если нужно, могу и файлы окон кинуть, для более точного понимания проекта.
Офлайн
> со стилями немного непонятно, т.к. все стили я устанавливаю в Qt Designed и они получается лежат в своих файликах, а я в зависимости от данных меняю стили и возвращаю их обратно
У тебя должен быть основной стиль который устанавливается для основного окна. Все другие окна будут его наследовать. Денамически ты должен менять стили только у нужных элементов. Если элементы лежат в одном контейнере, то лучше менять стиль контейнера, а не каждого виджета.
> я скорее всего не до конца понимаю философию python
Нет там никакой особой философии. Сначала тебе нужно разобраться с ООП, как с ним разберёшься, так всё станет на свои места.
Офлайн
Спасибо. С ООП я действительно не до конца разобрался. Может подскажете ресурсы, где доступно работа с классами подана.
Офлайн