def initUI(self): btn1 = QPushButton("Button 1", self) btn1.move(30, 50) btn2 = QPushButton("Button 2", self) btn2.move(150, 50) btn1.clicked.connect(self.buttonClicked1) btn2.clicked.connect(self.buttonClicked2) # create textbox self.textbox1 = QLineEdit(self) self.textbox2 = QLineEdit(self) self.textbox1.move(20, 20) self.textbox1.resize(280, 40) self.textbox2.move(20, 150) self.textbox2.resize(280, 40) self.statusBar() self.setGeometry(300, 300, 450, 350) self.setWindowTitle('Event sender') self.show() @pyqtSlot() def buttonClicked1(self, *_args): # sender = self.sender() # # msg = f'{sender.text()} was pressed' textboxValue = self.textbox1.text() self.statusBar().showMessage(textboxValue) return textboxValue @pyqtSlot() def buttonClicked2(self, *_args, textboxValue): # sender = self.sender() # # msg = f'{sender.text()} was pressed' self.textbox2.text(textboxValue) self.statusBar().showMessage(textboxValue)如何把textbox1的文本参数通过bt2输出到textbox2上,请用python写代码
时间: 2024-02-14 18:11:02 浏览: 140
您可以在buttonClicked2函数中使用self.textbox1.text()来获取textbox1的文本参数,并将其传递给self.textbox2.setText()函数来设置textbox2的文本值。修改后的代码如下:
```
@pyqtSlot()
def buttonClicked2(self, *_args):
textboxValue = self.textbox1.text()
self.textbox2.setText(textboxValue)
self.statusBar().showMessage(textboxValue)
```
在buttonClicked2函数中,我们首先使用self.textbox1.text()获取textbox1的文本值,并将其存储在变量textboxValue中。然后,我们使用self.textbox2.setText()函数将这个值设置为textbox2的文本值。最后,我们调用self.statusBar().showMessage()函数来显示textboxValue的值。
相关问题
class MyApp(QMainWindow): signal = pyqtSignal(str, str, int, str) def init(self, parent= None): super(MyApp, self).init(parent) self.setWindowTitle("Matplotlib in PyQt6") MainWindow.resize(self, 800, 600) self.star() self.initUI() def star(self): btn1 = QPushButton("Button 1", self) btn1.move(30, 50) btn2 = QPushButton("Button 2", self) btn2.move(150, 50) btn1.clicked.connect(self.buttonClicked1) btn2.clicked.connect(self.buttonClicked2) # create textbox self.textbox1 = QLineEdit(self) self.textbox1.setText("123") self.textbox2 = QLineEdit(self) self.textbox1.move(20, 20) self.textbox1.resize(280, 40) self.textbox2.move(20, 150) self.textbox2.resize(280, 40) self.show() def initUI(self): # 创建一个QWidget对象 central_widget = QWidget(self) # 将该QWidget设置为主窗口的中心组件 self.setCentralWidget(central_widget) # 创建需要显示的QWidget组件,例如QPushButton和QLabel button = QPushButton("Button", central_widget) label = QLabel("Label", central_widget) label.setFixedSize(100, 10) # 创建一个Matplotlib的Figure对象 self.figure = Figure(figsize=(5, 4), dpi=100) # 在Figure中添加一个Axes对象 self.axes = self.figure.add_subplot(111) self.axes.set_xlabel("X-axis") self.axes.set_ylabel("Y-axis") self.axes.set_title("Matplotlib in PyQt6") # 创建一个FigureCanvas对象,并将其放置在QWidget中 canvas = FigureCanvas(self.figure) canvas.resize(self, 200, 100) canvas.updateGeometry() # 将FigureCanvas添加到QWidget中 central_widget = QWidget(self) self.setCentralWidget(central_widget) # 创建一个QVBoxLayout对象,将需要显示的QWidget组件添加到其中 layout = QVBoxLayout(central_widget) layout.addWidget(button) layout.addWidget(label) layout.addWidget(label) layout.addWidget(canvas) @pyqtSlot() def buttonClicked1(self): text = self.textbox1.text() self.statusBar().showMessage(text) @pyqtSlot() def buttonClicked2(self): text = self.textbox1.text() self.textbox2.setText(text) self.statusBar().showMessage(text)如何把def sta里的textbox获得的参数通过他的监听把参数传值到def init上,使得def init 上可以获得外部的值作为变量传入调用
你可以在 `star()` 方法中将 `self.textbox1` 和 `self.textbox2` 的文本内容保存为实例变量,然后在 `buttonClicked1()` 和 `buttonClicked2()` 方法中更新这些实例变量。然后你就可以在 `initUI()` 方法中使用这些实例变量了。下面是修改后的代码:
```
class MyApp(QMainWindow):
signal = pyqtSignal(str, str, int, str)
def __init__(self, parent=None):
super(MyApp, self).__init__(parent)
self.setWindowTitle("Matplotlib in PyQt6")
self.resize(800, 600)
self.textbox1_text = ""
self.textbox2_text = ""
self.star()
self.initUI()
def star(self):
btn1 = QPushButton("Button 1", self)
btn1.move(30, 50)
btn2 = QPushButton("Button 2", self)
btn2.move(150, 50)
btn1.clicked.connect(self.buttonClicked1)
btn2.clicked.connect(self.buttonClicked2)
self.textbox1 = QLineEdit(self)
self.textbox1.setText("123")
self.textbox1.move(20, 20)
self.textbox1.resize(280, 40)
self.textbox1.textChanged.connect(self.textbox1Changed)
self.textbox2 = QLineEdit(self)
self.textbox1.move(20, 150)
self.textbox1.resize(280, 40)
self.textbox2.textChanged.connect(self.textbox2Changed)
self.show()
def initUI(self):
central_widget = QWidget(self)
self.setCentralWidget(central_widget)
button = QPushButton("Button", central_widget)
label = QLabel("Label", central_widget)
label.setFixedSize(100, 10)
self.figure = Figure(figsize=(5, 4), dpi=100)
self.axes = self.figure.add_subplot(111)
self.axes.set_xlabel("X-axis")
self.axes.set_ylabel("Y-axis")
self.axes.set_title("Matplotlib in PyQt6")
self.canvas = FigureCanvas(self.figure)
self.canvas.resize(self, 200, 100)
self.canvas.updateGeometry()
layout = QVBoxLayout(central_widget)
layout.addWidget(button)
layout.addWidget(label)
layout.addWidget(label)
layout.addWidget(self.canvas)
@pyqtSlot()
def buttonClicked1(self):
text = self.textbox1_text
self.statusBar().showMessage(text)
@pyqtSlot()
def buttonClicked2(self):
text = self.textbox2_text
self.textbox2.setText(text)
self.statusBar().showMessage(text)
@pyqtSlot(str)
def textbox1Changed(self, text):
self.textbox1_text = text
@pyqtSlot(str)
def textbox2Changed(self, text):
self.textbox2_text = text
```
btn1 = QPushButton(self) btn1.setText("打开图片") btn1.move(20, 30) btn1.clicked.connect(self.openimage)代码解释
这段代码创建了一个QPushButton对象,并将其添加到QWidget中。
首先,通过`QPushButton(self)`创建了一个QPushButton对象,并将其父对象设置为当前的QWidget。
接着,使用`setText("打开图片")`方法设置按钮的文本为"打开图片"。
然后,使用`move(20, 30)`方法将按钮移动到(20, 30)的位置,即窗口的坐标为(20, 30)。
最后,通过`clicked.connect(self.openimage)`将按钮的`clicked`信号与`self.openimage`方法进行连接。这意味着当按钮被点击时,会触发`self.openimage`方法的执行。
需要注意的是,这段代码只是定义了一个按钮,并将其添加到QWidget中。要使按钮实际显示出来并具有功能,您需要在适当的位置实例化该类,并实现`openimage()`方法。该方法应该包含在按钮被点击时要执行的代码。
阅读全文