Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Как работать с элементами Qt интерфейса из другого Python файла? [RSS Feed]

#1 Фев. 14, 2020 17:01:48

dakota
Зарегистрирован: 2020-02-14
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как работать с элементами Qt интерфейса из другого Python файла?

Здравствуйте, только изучаю работу и интерфейсом. Прям совсем совсем новичок в этом деле. Суть в том, что у меня есть 3 файла: 1)файл с кодом самого интерфейса(gui_main_interface.py), 2) файл с кодом инициализации интерфейса(__init__.py), 3) файл с определёнными функциями(vk_api_methods.py).
Мне необходимо в файле с функциями (vk_api_methods.py) использовать элементы Qt интерфейса, к примеру получить данные из QlineEdit1 и QlineEdit2, после чего будет выполняться функция с полученными на вход данными и после чего новые данные из функции должны будут записаться в QlistWidget.

Думаю стандартный код с созданием элементов окна показывать не надо, поэтому покажу файлы __init__.py и vk_api_methods.py
_________________________________________________________________________________________
__init__.py:

if __name__ == “__main__”:
import sys
from gui_main_interface import Ui_VK_API
from PyQt5 import QtCore, QtGui, QtWidgets
from vk_api_methods import vk_methods
import gephi_streaming
from my_data import MyVkData
def myprint():
ui.listWidget.addItem()

app = QtWidgets.QApplication(sys.argv)
VK_API = QtWidgets.QDialog()
ui = Ui_VK_API()
ui.setupUi(VK_API)
ui.pushButton.clicked.connect(lambda:vk_methods.newsfeed_search(ui.lineEdit.text(),ui.lineEdit_2.text()))
ui.pushButton_2.clicked.connect(gephi_streaming.gephi_visualise)
VK_API.show()
sys.exit(app.exec_())
_________________________________________________________________________________________
vk_api_methods.py:

import vk
from my_data import MyVkData
from gui_main_interface import Ui_VK_API
session = vk.AuthSession(app_id=MyVkData.APP_ID,user_login=MyVkData.LOGIN,user_password=MyVkData.GET_PASSWORD())
vkapi = vk.API(session,v = ‘5.103’)

class vk_methods(object):
@staticmethod
def friends_get(user_id):
friends = vkapi.friends.get(user_id=user_id,fields='domain')
return friends

@staticmethod
def newsfeed_search(text1,text2):
topics=vkapi.newsfeed.search(q=str(text1),count=int(text2),extended=1)
print(topics)
_________________________________________________________________________________________
Т.е. как реализовать получение данные из QlineEdit1 и QlineEdit2 мне подсказали, я вроде понял, однако мне нужно именно чтобы я мог использовать элементы интерфейса в любом python файле, т.е. написать так, к примеру:
class vk_methods:
@staticmethod
def newsfeed_search():
topics=vkapi.newsfeed.search(q=str(txt1),count=int(txt2),extended=1)
#И дальше что-то типа этого:
for items in topics:
ui.listWidget.addItem(items)
_________________________________________________________________________________________
Заранее спасибо большое!

Отредактировано dakota (Фев. 14, 2020 17:02:06)

Офлайн

#2 Фев. 15, 2020 02:44:32

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

Как работать с элементами Qt интерфейса из другого Python файла?

Во-первых код выкладывайте под теги

[code python][/code]

то что вы выложили - нихрена не понятно

во-вторых сама суть гуя в том что он вертится в бесконечном цикле вызываемом методом exec_()
посему логику и общую архитектуру лучше строить приблизительно следующим образом -
в скольки угодно файлах описываете логику работы, элементы гуя и прочее, затем импортируете все это в главный файл который будет похож на приведенный ниже код

 class ss(QMainWindow):
    # в этом классе вся логика программы (финальная)
    def __init__(self):
        QMainWindow.__init__(self)
        
# то что здесь будет выполнено единожды но при этом может взаимодействовать со всеми классами
app = QApplication(sys.argv)
wnd = ss()
# то что здесь будет выполнено единожды но при этом может взаимодействовать с гуем
print(1)
wnd.show()
sys.exit(app.exec_())
print('lol') # не сработает никогда



Отредактировано @cckyi_boxxx (Фев. 15, 2020 02:48:04)

Офлайн

#3 Фев. 16, 2020 13:42:19

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Как работать с элементами Qt интерфейса из другого Python файла?

@cckyi_boxxx
Во-первых код выкладывайте под теги



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

  • Начало
  • » GUI
  • » Как работать с элементами Qt интерфейса из другого Python файла?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version