私は3つの入力とコンボボックスからの選択をユーザに促すインタフェースを持っています。私がしたいことは、ユーザーが入力したすべての情報を持っていることです。ボタンを押すと、その入力はプロジェクトの後続のプロセス(フォルダの作成、コピーなど)で実行されます。PyQt5 GUIからメインコードにユーザ入力を渡す
私の問題は、ユーザー入力から割り当てる変数を取得する方法がわかりません。 if___name___の変数を呼び出した後にapp.exec_()を配置すると、割り付けられないように見えます。この.pyファイルをどのように呼び出して、必要な入力をコードの他の部分に渡すことができますか?明確にするために私の最善を尽くしていない感が病気になっている。このので、もし任意の助けのおかげで、私は
from new2 import Ui_Line
import nextProcess
from PyQt5 import QtCore, QtGui, QtWidgets
import glob, os, shutil
#GUI Called from 'new2' now apply functions to create the line based on users inputs
class window(QtWidgets.QMainWindow, Ui_Line):
def __init__(self, parent = None):
QtWidgets.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.assign)
#Function that happens when the 'click line' button is pressed
def assign(self):
num1 = str(self.num1EDIT.toPlainText())
num2 = str(self.num2EDIT.toPlainText())
num3 = str(self.num3EDIT.toPlainText())
mas = str(self.comboBox.currentText())
if mas == 'Path 1':
master = 'cbm'
elif mas == 'Path 2':
master = 'crwt'
else:
master = 'wst'
#QtCore.QCoreApplication.instance().quit()
"""Potential fix edit
proc2 = nextProcess() <---- Do I need to put nextProcess inside the assign() or in the window()?
"""
return num1, num2, num3, master
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
newWindow = window(None)
newWindow.show()
app.exec_() # <---- This is my fix, but I know this probably isn't correct
info = newWindow.assign()
num1 = info[0]
num2 = info[1]
num3 = info[2]
master = info[3]
next = nextProcess(num1, num2, num3, master)
クラス 'window()'または関数assignでnextProcessを渡す必要がありますか?私はちょうどそれを呼び出す方法で失われています。 – Chris
通常、このメソッドはクラス自体のメンバになります。あなたは 'self'変数の中のクラスインスタンスにアクセスすることができ、そこからテキストフィールドとその値にアクセスすることができます。しかし、必要なのは、ここにある数字( 'num1'など)だけであれば、' nextProcess() 'はメンバーメソッドである必要はありません。あなたのコードからどちらかの方法が問題ないようです。 – bnaecker