如何使用另一个py scrip获取pyqt中文本框的输入

2024-06-16 13:44:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这两个剧本。首先包含使用pyqt5的ui,这包含一些文本框和按钮。第二个包含按钮的功能(我指的是它将做什么),现在我只想在终端上显示文本框中写的内容。问题是我无法使用第二个py获取/打印/显示文本框中的输入文本。我有这个按钮(上传按钮),必须显示在终端点击时,这个文本。你知道吗

我试着将第二个py导入第一个py。然后我接上按钮。 butUpld.clicked.connect连接(py2.以上)

对于第二个py,我也将它连接到第一个py

This is the first py file name py1.py

import os, glob, sys, time
import py2
from PyQt5.Qt import QApplication, QClipboard, QUrl
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import QMainWindow, QWidget, QPlainTextEdit,   QLabel, QGridLayout, QPushButton, QLineEdit, QTextEdit, QMessageBox, QComboBox, QTabWidget, QFormLayout, QHBoxLayout, QRadioButton, QCheckBox, QVBoxLayout, QFileDialog, QButtonGroup
from PyQt5.QtCore import pyqtSlot, Qt

qt_app = QApplication(sys.argv)

class Layoutexe(QTabWidget):
    def __init__(self, parent = None):
        super(Layoutexe, self).__init__(parent)
        self.tab1 = QWidget()
        self.tab2 = QWidget()

        self.addTab(self.tab1," ")
        self.addTab(self.tab2," ")
        self.tab1UI()
        self.tab2UI()
        self.setWindowTitle(" ")
        self.setFixedSize(900,1000)

    def tab1UI(self):
        vbox = QVBoxLayout()
        hbox = QHBoxLayout()
        hbox1 = QHBoxLayout()
        hbox2 = QHBoxLayout()
        hbox3 = QHBoxLayout()

        labelPath = QLabel("PATH:")
        tboxPath = QLineEdit(self)
        butSrch = QPushButton("Search", self)
        butClr = QPushButton("Clear", self)
        hbox.addStretch()
        hbox.addWidget(labelPath)
        hbox.addWidget(tboxPath)
        hbox.addWidget(butSrch)
        hbox.addStretch()
        hbox.addWidget(butClr)
        vbox.addLayout(hbox)

        radbutLst = QRadioButton("Latest")
        radbutMnl = QRadioButton("Manual")
        hbox1.addWidget(radbutLst)
        hbox1.addWidget(radbutMnl)
        hbox1.addStretch()
        vbox.addLayout(hbox1)

        labelEV = QLabel("Event:")
        tboxEV = QLineEdit(self)
        hbox2.addWidget(labelEV)
        hbox2.addWidget(tboxEV)
        hbox2.addStretch()
        vbox.addLayout(hbox2)

        butUpld = QPushButton("UPLOAD", self)
        hbox3.addStretch()
        hbox3.addWidget(butUpld)
        hbox3.addStretch()
        vbox.addLayout(hbox3)

        vbox.addStretch()
        self.tab1.setLayout(vbox)

    butUpld.clicked.connect(py2.up)

    def tab2UI(self):
        vbox = QVBoxLayout()
        layout = QHBoxLayout()

    def run(self):
        self.show()
        qt_app.exec_()

app = Layoutexe()
app.run()



this the second py file named py2.py

import os, glob
import py1

def up():
    a = gui.rep.tab1U.tboxEV
    print(a.text())

Tags: pyimportselfdef按钮py2vboxaddwidget
1条回答
网友
1楼 · 发布于 2024-06-16 13:44:12

试试看:

py1.py

import sys
#import os, glob, time

from PyQt5.Qt import QApplication, QClipboard, QUrl
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import QMainWindow, QWidget, QPlainTextEdit,   QLabel, QGridLayout, QPushButton, QLineEdit, QTextEdit, QMessageBox, QComboBox, QTabWidget, QFormLayout, QHBoxLayout, QRadioButton, QCheckBox, QVBoxLayout, QFileDialog, QButtonGroup
from PyQt5.QtCore import pyqtSlot, Qt

import py2         

qt_app = QApplication(sys.argv)

class Layoutexe(QTabWidget):
    def __init__(self, parent = None):
        super(Layoutexe, self).__init__(parent)

        self.tab1 = QWidget()
        self.tab2 = QWidget()

        self.addTab(self.tab1," ")
        self.addTab(self.tab2," ")
        self.tab1UI()
        self.tab2UI()
        self.setWindowTitle(" ")
        self.setFixedSize(900,1000)

    def tab1UI(self):
        vbox = QVBoxLayout()
        hbox = QHBoxLayout()
        hbox1 = QHBoxLayout()
        hbox2 = QHBoxLayout()
        hbox3 = QHBoxLayout()

        labelPath = QLabel("PATH:")
        tboxPath = QLineEdit(self)
        butSrch = QPushButton("Search", self)
        butClr = QPushButton("Clear", self)
        hbox.addStretch()
        hbox.addWidget(labelPath)
        hbox.addWidget(tboxPath)
        hbox.addWidget(butSrch)
        hbox.addStretch()
        hbox.addWidget(butClr)
        vbox.addLayout(hbox)

        radbutLst = QRadioButton("Latest")
        radbutMnl = QRadioButton("Manual")
        hbox1.addWidget(radbutLst)
        hbox1.addWidget(radbutMnl)
        hbox1.addStretch()
        vbox.addLayout(hbox1)

        labelEV = QLabel("Event:")
        self.tboxEV = QLineEdit(self)
        hbox2.addWidget(labelEV)
        hbox2.addWidget(self.tboxEV)
        hbox2.addStretch()
        vbox.addLayout(hbox2)

        butUpld = QPushButton("UPLOAD", self)
        hbox3.addStretch()
        hbox3.addWidget(butUpld)
        hbox3.addStretch()
        vbox.addLayout(hbox3)

        vbox.addStretch()
        self.tab1.setLayout(vbox)

        butUpld.clicked.connect(lambda _, s=self: py2.up(s))             # +++

    def tab2UI(self):
        vbox = QVBoxLayout()
        layout = QHBoxLayout()

    def run(self):
        self.show()
        qt_app.exec_()

app = Layoutexe()
app.run()

py2.py

#import os, glob
#import py1

def up(self):
#    a = gui.rep.tab1U.tboxEV
    a = self.tboxEV
    print(a.text())

enter image description here

相关问题 更多 >