Как из QlineEdit дать значение элементу массива из другого .py файла?
У меня есть интерфейс в main.py, и файл конфигурации с переменными config.py.
main.ру:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from menu import Ui_MenuWindow
import config as cf
class Ui_MainWindow(object):
def openMenu(self):
self.window = QtWidgets.QMainWindow()
self.ui = Ui_MenuWindow()
self.ui.setupUi(self.window)
self.window.show()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 431)
MainWindow.setStyleSheet("background-color: rgb(35, 39, 42);\n"
"\n"
"\n"
"QLineEdit::focus {\n"
" border: 2px;\n"
"}\n"
"\n"
"")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 100, 201, 61))
self.label_2.setMinimumSize(QtCore.QSize(201, 51))
font = QtGui.QFont()
font.setFamily("Montserrat")
font.setPointSize(14)
font.setBold(False)
font.setItalic(False)
font.setWeight(10)
self.label_2.setFont(font)
self.label_2.setStyleSheet("font: 87 14pt \"Montserrat\";\n"
"color: rgb(255, 255, 255)")
self.label_2.setObjectName("label_2")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(170, 10, 481, 61))
self.widget.setStyleSheet("background-color: rgb(44, 47, 51);\n"
"border-radius: 10px;")
self.widget.setObjectName("widget")
self.label = QtWidgets.QLabel(self.widget)
self.label.setEnabled(True)
self.label.setGeometry(QtCore.QRect(120, 0, 231, 61))
self.label.setMinimumSize(QtCore.QSize(221, 51))
font = QtGui.QFont()
font.setFamily("Segoe UI Black")
font.setPointSize(22)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setAutoFillBackground(False)
self.label.setStyleSheet("text-align: center;\n"
"color: rgb(255, 255, 255);")
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(410, 200, 311, 20))
font = QtGui.QFont()
font.setFamily("Segoe UI Light")
self.lineEdit_2.setFont(font)
self.lineEdit_2.setAutoFillBackground(False)
self.lineEdit_2.setStyleSheet(" background-color: rgb(44, 47, 51);\n"
" border: 1px solid rgb(255, 255, 255);\n"
" color: white;\n"
" border-radius: 5px;")
self.lineEdit_2.setText("")
self.lineEdit_2.setObjectName("lineEdit_2")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(30, 200, 361, 21))
font = QtGui.QFont()
font.setFamily("Segoe UI Semibold")
font.setPointSize(9)
self.label_5.setFont(font)
self.label_5.setStyleSheet("color: white;\n"
"")
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(30, 240, 371, 41))
font = QtGui.QFont()
font.setFamily("Segoe UI Semibold")
font.setPointSize(9)
self.label_6.setFont(font)
self.label_6.setStyleSheet("color: white;\n"
"")
self.label_6.setObjectName("label_6")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(410, 240, 311, 20))
font = QtGui.QFont()
font.setFamily("Segoe UI Light")
self.lineEdit_3.setFont(font)
self.lineEdit_3.setAutoFillBackground(False)
self.lineEdit_3.setStyleSheet("background-color: rgb(44, 47, 51);\n"
"border: 1px solid rgb(255, 255, 255);\n"
"color: white;\n"
"border-radius: 5px;")
self.lineEdit_3.setText("")
self.lineEdit_3.setObjectName("lineEdit_3")
self.pushButton = QtWidgets.QPushButton(self.centralwidget, clicked=lambda: self.update_data())
self.pushButton.setGeometry(QtCore.QRect(310, 320, 181, 61))
font = QtGui.QFont()
font.setFamily("Segoe UI Black")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("QPushButton {\n"
" text-align: center;\n"
" color: rgb(255, 255, 255);\n"
" background-color: rgb(44, 47, 51);\n"
" border-radius: 10px;\n"
"}\n"
"\n"
"QPushButton:hover {\n"
" text-align: center;\n"
" color: rgb(255, 255, 255);\n"
" background-color: #404EED;\n"
" border-radius: 10px;\n"
"\n"
"}\n"
"\n"
"QPushButton::focus {\n"
" background-color:rgb(153, 170, 181);\n"
" color: rgb(44, 47, 51);\n"
"}")
self.pushButton.setObjectName("pushButton")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(420, 90, 341, 61))
font = QtGui.QFont()
font.setFamily("Segoe UI Semibold")
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setStyleSheet("color: rgb(206, 206, 206);\n"
"")
self.label_4.setObjectName("label_4")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(50, 10, 81, 61))
self.label_7.setStyleSheet("object-fit: cover;")
self.label_7.setText("")
self.label_7.setPixmap(QtGui.QPixmap("icon.png"))
self.label_7.setScaledContents(True)
self.label_7.setWordWrap(False)
self.label_7.setObjectName("label_7")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label_2.setText(_translate("MainWindow", "Setup before start"))
self.label.setText(_translate("MainWindow", " Discord Toolz"))
self.lineEdit_2.setWhatsThis(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
self.label_5.setText(_translate("MainWindow", "Channel ID"))
self.label_6.setText(_translate("MainWindow", "Changes how fast the messages are posted (in seconds) \n"
" (Anything under 0.7 tends to break it (┛✧Д✧))┛彡┻━┻ )"))
self.lineEdit_3.setWhatsThis(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
self.pushButton.setText(_translate("MainWindow", "START"))
self.label_4.setText(
_translate("MainWindow", "We recommend creating a file that will contain your initial data \n"
"for running the script. \n"
"Copying from a file on the desktop is easier than constantly \n"
"launching the browser"))
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.update_data)
cf.SpamSpeed = self.lineEdit_3.text()
cf.DiscordChannel = self.lineEdit_2.text()
def update_data(self):
cf.SpamSpeed = self.lineEdit_3.text()
cf.DiscordChannel = self.lineEdit_2.text()
openMenu()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
а вот config.py
# Basic Config (For all bots)
pythonCommand = "python" # If you have the python command set to something else such as python3
userToken = [] # User Tokens here. example 'token','token' | 'email:pass', 'token'
DiscordChannel = '' # Channel ID,
SpamSpeed = 120 # Changes how fast the messages are posted. (Anything under 0.7 tends to break it (┛✧Д✧))┛彡┻━┻ )
textRandom = True # if the root has 'text.txt' it will pick a random text line and send it.
textFull = False # Will send everything written in 'text.txt'
discumLog = True # Displays Discums Logs, Very useful for providing more info on what went wrong.
#Server Joiner
useTokenJoin = True
inviteLink = '' # Only the last 6 digits of the invite link https://discord.gg/XXXXXX | Unless you are using email join then just the full URL
autojoinServer = True # Will auto join the inviteLink server if True
useBrowser = 'Firefox' # Chrome | Firefox | Edge (windows only) | Set the browser used for joining the servers.
joinSpeed = 3 # Changes how fast the bot will start the server joiner
#DM Spam
DiscordServer = '' # Server ID (https://i.imgur.com/m06TSEx.png this one)
ScanAllServers = False # (True or False) Instead of using a server ID this will scan all of the users joined servers.
HeavyScrape = False # (True or False) Use this for servers with a lot of users
#Account Creator
captchaAPI = 'c906c780567d1abd410cdf45c9d0aee3' #2captcha API Key
mailServer = 'pop.gmail.com' # Mail server, pop 3 version. (example = "pop.mail.ru")
#Picture spam
DirPictures = 'pictures' # Picture(s) location, end directory with a double slash.
И, собственно, вопрос, как мне значение из LineEdit_2 в main.py засунуть значение в DiscordChannel который в config.py
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Вы не предоставляете минимально-воспроизводимый пример, это не хорошо.
q1386380_main.py
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
import q1386380_config as cf # +++
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(100, 30, 600, 40))
self.pushButton = QtWidgets.QPushButton('Покажите cf.var', self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(300, 160, 200, 40))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.update_data)
print(f'1 cf.var[0] = {cf.var[0]}')
cf.var[0] = self.lineEdit.text()
print(f'2 cf.var[0] = {cf.var[0]}')
def update_data(self):
cf.var[0] = self.lineEdit.text()
print(f'3 cf.var[0] = {cf.var[0]}')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
q1386380_config.py
var = [None, ] # +++ None
