![](/img/trans.png)
[英]PyQt4: Read texts in QLineEdit/QTextEdit and implement the text change into some functions by clicking a button
[英]By clicking a button, print some texts entered in QLineEdit when a checkbox is checked PyQt4
通过单击按钮,我想打印选中复选框后在QLineEdit中输入的一些文本。 我的示例代码如下:
import sys
import PyQt4
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Widget(QWidget):
def __init__(self, parent= None):
super(Widget, self).__init__(parent)
layout = QGridLayout()
self.setLayout(layout)
self.checkBox = QCheckBox()
layout.addWidget(self.checkBox, 0, 0)
self.le = QLineEdit()
layout.addWidget(self.le, 0, 1)
self.btn = QPushButton('Run')
layout.addWidget(self.btn, 0, 3)
class Func ():
def __init__(self):
a = Widget(self)
def someFunc(self):
##print ()
app = QApplication(sys.argv)
widget = Widget()
widget.show()
app.exec_()
如您在上面看到的,我希望“ Widget”类中的按钮连接到“ Func”类中的“ someFunc”方法。 因此,当在“ self.le”中输入了一些文本以及选中了“ checkBox”时,我希望“ someFunc”通过单击按钮来打印在“ self.le”中输入的文本。 如果未选中“复选框”,则即使输入了一些文本,单击按钮也不会导致任何事情发生。
如果有人知道如何解决,请让我知道谢谢!!
您需要将按钮的单击信号连接到将要处理的功能。 像这样: button.clicked.connect(handler_function)
import sys
import PyQt5
from PyQt5.QtWidgets import *
class Func ():
def __init__(self, widget):
self.w = widget
def someFunc(self):
if self.w.checkBox.isChecked():
print(self.w.le.text())
class Widget(QWidget):
def __init__(self, parent= None):
super(Widget, self).__init__(parent)
layout = QGridLayout()
self.setLayout(layout)
self.checkBox = QCheckBox()
layout.addWidget(self.checkBox, 0, 0)
self.le = QLineEdit()
layout.addWidget(self.le, 0, 1)
self.btn = QPushButton('Run')
layout.addWidget(self.btn, 0, 3)
# connecting to a method in this class
# self.btn.clicked.connect(self.some_func)
#connecting to a method in another class
self.handler_class = Func(self)
self.btn.clicked.connect(self.handler_class.someFunc)
def some_func(self):
if self.checkBox.isChecked():
print(self.le.text())
app = QApplication(sys.argv)
widget = Widget()
widget.show()
app.exec_()
编辑:简单地说:在Func
类中, self.w
包含对小部件的引用,单击该按钮时将从该小部件发出信号。
为什么我要引用该小部件? 这样我就可以访问小部件的combobox
和lineedit
。 如果没有访问它们的方法,我将看不到checkbox
是否被选中,或者用户在textedit
键入了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.