Python - функция в отдельном файле не работает - PullRequest
1 голос
/ 03 февраля 2020

за последние дни я немного научился Python. Теперь я попытался сделать GUI с PyQT и хотел написать программу с функциями во втором файле с именем untitled2. В этом файле есть функция, чтобы проверить, вставлено ли число или что-то другое в textedit. Когда я вставляю эту функцию в основной файл, эта программа работает. Но когда я делаю это во втором файле (без названия2) и вставляю этот файл, эта программа больше не работает. Совершенно не знаю, почему ...

Вот небольшой пример без программного кода gui.

Основной файл:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.uic import *
from PyQt5.QtWidgets import QApplication, QMainWindow
from untitled1 import *


app = QApplication(sys.argv)
w = loadUi('testprogramgui.ui')


w.Button_button_1.clicked.connect(check)

w.show()
sys.exit(app.exec_())

А вот файл без названия2 с функцией:

def check():

    try:
        insert= w.insertValue1.text()
        insert2= float(insert)
        #check to control
        print(insert2, type(insert2))

    except:
        print("no number")

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

Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Вам не нужно импортировать файл "untitled2"? Теперь ваш код показывает, что вы импортируете «untitled1»?

from untitled1 import * получает from untitled2 import *

0 голосов
/ 03 февраля 2020

Каждый модуль должен быть независимым от другого модуля, каждая функция также должна быть независимой, поэтому в вашем случае функция «check» не должна учитывать источник информации в тексте, для этого мы делаем функцию «check» получить информацию:

# ...
app = QApplication(sys.argv)
w = loadUi('testprogramgui.ui')

def on_clicked():
    check(w.insertValue1.text())

w.Button_button_1.clicked.connect(on_clicked)

w.show()
sys.exit(app.exec_())
def check(insert):
    try:
        insert2= float(insert)
        #check to control
        print(insert2, type(insert2))

    except:
        print("no number")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...