Форум сайта python.su
Привет всем!
Сильно не пинайте, но я действительно не могу понять общий принцип.
Ранее на Autoit было просто - импортировал файл, и все с него можно использовать, а вот с python я теряюсь.
Но - к вопросу.
Итак, есть три файла с расширением py.
1. design.py - Дизайн, созданный и конвертированный из QTDesigner
2. main.py - собственно главный исполняющий файл, в который я и хочу все добавить.
Эти два файла между собой связаны и прекрасно работают. Это просто для показа связи
import sys from PyQt5 import QtWidgets, QtGui, QtCore import design from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout, QVBoxLayout, QFrame) from PyQt5.QtGui import QColor from PyQt5.QtCore import QSize ##Главный класс class App(QtWidgets.QMainWindow, design.Ui_MainWindow): ## Инициализация окна и обработчики событий def __init__(self): # Это здесь нужно для доступа к переменным, методам # и т.д. в файле design.py super().__init__() self.setupUi(self) -----------------------
from kod import Kod
self.btn_Parce.clicked.connect(Kod.open_import_txt)
class Kod(): def __init__(self): super().__init__()
self.setupUi(self)
Отредактировано Novator (Апрель 16, 2021 07:48:06)
Офлайн
NovatorФайлы называй всегда строчными буквами. С прописной буквы называются классы. Это соглашение из PEP8.
Итак, есть три файла с расширением py.
1. Design.py - Дизайн, созданный и конвертированный из QTDesigner
2. Main.py - собственно главный исполняющий файл, в который я и хочу все добавить.
Отредактировано py.user.next (Апрель 15, 2021 21:59:59)
Офлайн
py.user.nextну ветка для новичков, потому ваши язвительные замечания о моем уме я пропущу.
Отредактировано Novator (Апрель 16, 2021 07:51:02)
Офлайн
Novator это у него нормальная манера ведения беседы, если не обращать внимание на эмоциональную часть, то зачастую он дает вполне дельные советы.
[code python][/code]
Офлайн
PEHDOM, я понимаю и смиренно склоняю голову…
Сам знаю, когда приходиться объяснять элементарные вещи и как это бесит.
Ну просто для меня этот вопрос пока не элементарный
Офлайн
NovatorМожете представить код так:любое имя переменной,функции или класса= названию адреса пространства в котором хранится какое-то значение или другое пространство.К примеру у вас есть квартира-это ваше пространство,а вы это пространство находящееся в этом пространстве.,хранящее значение в виде себя.Если я нахожусь рядом с вами в одной квартире,то могу передать вам письмо с информацией сразу в руки.просто обратившись к вам по имени,например Иван.Но если я нахожусь в другом городе,то чтобы передать вам письмо мне нужно точно знать ваш адрес.т.е.Город.Улица.Дом.Квартира.Иван.Конечно в программировании я не встречал столько вложенных пространств.,в коде будет обращение Класс.переменная.В итоге чтобы можно было обращаться из одного пространства в другое,нужно чтобы пространство знало адрес другого пространства.
Ну просто для меня этот вопрос пока не элементарный
Офлайн
NovatorИз файла kod.py ты максимум можешь послать сигнал. Этот сигнал должен слушать класс приложения из файла main.py и реагировать на него, выполняя какое-то действие при его получении. Вся связь между частями в Qt-приложениях организуется через сигналы и слоты.
Но вот суть вопроса - как с файла kod.py обратиться к элементам окна (design.py и main.py).
Отредактировано py.user.next (Апрель 16, 2021 10:35:02)
Офлайн
Из всего написанного я так понимаю, что к делу относятся только сигналы и слоты. Что ж, по этим словам и будем гуглить
Хотя смотрю, что проще или не делать вообще, или писать все в один файл и класс
py.user.nextА можно пару строк кода?
Поэтому создай отдельный файл с интерфейсами. Там у тебя будет описан сигнал. Потом этот сигнал импортируешь в kod.py и в main.py и дальше в main.py ты в приложении App делаешь слот, который принимает этот сигнал и что-то делает при его получении. А в kod.py ты посылаешь этот сигнал через emit куда-то в общее пространство. И вот так через общее пространство, где ходят все сигналы приложения, этот сигнал попадёт в слот и тот на него среагирует.
Отредактировано Novator (Апрель 16, 2021 11:43:22)
Офлайн
NovatorВся связь между частями программы, использующей Qt, делается через сигналы и слоты.
Хотя смотрю, что проще или не делать вообще, или писать все в один файл и класс
NovatorДля начала узнай, что такое coupling и cohesion.
Что ж, по этим словам и будем гуглить
Офлайн
py.user.next, опять замечание на мои умственные возможности. С таким количеством сообщений конечно имеете право. Но право блеснуть знаниями, а не указывать на неграмотность других.
Если бы я знал ответы на все вопросы, меня бы тут и не было
Офлайн