Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.03.2024
Сообщений: 1

Не могу понять как обратиться к атрибутам функции класса в другом скрипте

05.03.2024, 23:59. Показов 641. Ответов 0

Студворк — интернет-сервис помощи студентам
Решил я со своим маленьким багажом знаний по питухону и постгрессу, запилить приложуху, с gui, использовал PYQT, так-как собирать 5-млрд окон в tkinter, желания нет, а тут по быстрому наклепал визуал в Qt Designer, выгрузил в ui, потом конвертнул в .py и вот сижу и понимаю что я не могу выгрузить из класса функции атрибут, который отвечает за текст.
Схема приблизительно такая, у меня 7-8 скриптов.
- Первые 5 это формы в которые я ввожу данные, они обращаються к бдшке и заполняют поля, каждая форма для своей таблицы в бд логично.
- Потом главное окно, из которого я соответсвенно делаю переход на другие окна.
- Сам скрипт с модулем psycopg2
- Окно для вывода логов, ошибок, вот с ним и проблема.
Мне нужно как-то реализовать чтобы я в скрипте main_bd обращался к атрибуту из модуля error textBrowser(атрибут)
но с моим знанием этих модулей и ооп, я туплю, что только не перепробовал.
Error
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_ErrorWindow(object):
    def setupUi(self, ErrorWindow):
        ErrorWindow.setObjectName("ErrorWindow")
        ErrorWindow.resize(321, 265)
        self.centralwidget = QtWidgets.QWidget(ErrorWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setGeometry(QtCore.QRect(30, 10, 256, 192))
        self.textBrowser.setObjectName("textBrowser")
        ErrorWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(ErrorWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 321, 26))
        self.menubar.setObjectName("menubar")
        ErrorWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(ErrorWindow)
        self.statusbar.setObjectName("statusbar")
        ErrorWindow.setStatusBar(self.statusbar)
 
        self.retranslateUi(ErrorWindow)
        QtCore.QMetaObject.connectSlotsByName(ErrorWindow)
    def retranslateUi(self, ErrorWindow):
        _translate = QtCore.QCoreApplication.translate
        ErrorWindow.setWindowTitle(_translate("ErrorWindow", "LogWindow"))
 
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    ErrorWindow = QtWidgets.QMainWindow()
    ui = Ui_ErrorWindow()
    ui.setupUi(ErrorWindow)
    ErrorWindow.show()
    sys.exit(app.exec_())

main_bd
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import psycopg2 as pg
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
from config import host, user, password, db_name
import sys
sys.path.append(r"C:\Users\Nike\Desktop\Scripts\Python\pgsql\gui\Error")
import error
 
def add_value_request_client(self, line_edit, line_edit_2, line_edit_3, line_edit_4, line_edit_5):
    rows = "Asd"
    connection = pg.connect(host=host, dbname=db_name, user=user, password=password)
    
    connection.autocommit = True
 
    try:
        with connection.cursor() as cursor:
            cursor.execute(
                f"insert into client(id_client, name, surname, adres, value_contact) values({line_edit.text()}, \'{line_edit_2.text()}\', \'{line_edit_3.text()}\', \'{line_edit_4.text()}\', \'{line_edit_5.text()}\')"
            )
            rows = cursor.fetchall()
            
            for row in rows:
                print(f"{row}")
    except (Exception, pg.DatabaseError) as errors:
        if str(errors) == "no results to fetch":
            print("Запрос выполнен")
        else:
            print(errors)
    finally:
        #self.mixmax = error.QtWidgets.QTextBrowser()
        #window = error.Ui_ErrorWindow()
        #window.setupUi(self.mixmax)
        #self.mixmax.setPlainText("Привет")
#хотябы добавить в finally мне алгоритм обращения понять к TextBrowser
 
 
        self.send_window = error.QtWidgets.QMainWindow()
        ui = error.Ui_ErrorWindow()
        ui.setupUi(self.send_window)
        self.send_window.show()
        print("Соединение закрыто")
        connection.close()
Добавлено через 1 час 18 минут
Все решил, всем спасибо. Ошибка возникала из-за того, что Ui_ErrorWindow не имеел атрибута textBrowser. создал экземпляр класса Ui_ErrorWindow, вызвал метод setupUi, который устанавливает все виджеты, включая textBrowser.

Таким образом, вызвал метод set_text сразу после вызова setupUi для Ui_ErrorWindow:

Python
1
2
3
4
5
self.send_window = error.QtWidgets.QMainWindow()
ui = error.Ui_ErrorWindow()
ui.setupUi(self.send_window)
ui.textBrowser.setText('Привет')  # Установка textBrowser после setupUi
self.send_window.show()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2024, 23:59
Ответы с готовыми решениями:

Как обратиться к переменной из одного класса в другом?
Я уже видел множество таких обсуждений, но в каждом случае чего-то другое. Не могу решить, как мне либо достать переменную из другого...

Не могу обратиться к методу класса в функции
Добрый день. При написании программы возникла проблема - в функции не могу обратиться к методу класса: компилятор выдаёт ошибку...

Как обратиться к функции в другом контроллере?
Доброго времени суток. У меня в проекте есть несколько контроллеров. В частности AdminController и ReportController. При написании...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2024, 23:59
Помогаю со студенческими работами здесь

Как обратиться к другим атрибутам ячейки на максимальной скорости?
Коллеги, ... проблема добивает и встала боком Как считывать атрибутику ячейки с нормальными скоростями ... передо мной десятки миллионов...

Ошибка в скрипте, не могу понять какая.
<? $org=$_GET; $qorg = mysql_query('SELECT * FROM organizations WHERE org_id='.$org,$db); $org_row =...

Ошибка в скрипте, не могу понять какая.
<? $org=$_GET; $qorg = mysql_query('SELECT * FROM organizations WHERE org_id='.$org,$db); $org_row =...

Как обратиться к определенной функции класса
Доброе время суток. Подскажите пожалуйста как обратится к классу ? К отдельной функции. Класс using System; using...

Как правильно обратиться к функции другого класса?
Хочу вызвать функцию func1 в классе A из функции func2 класса B. Ошибок не получаю, но объект таблица не обновляется, хотя если вызываю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru