【发布时间】:2019-08-26 09:09:22
【问题描述】:
通过 QlineEdit 读取文本,它是 Qmenu 的一部分
如代码所示,虽然我可以使用触发函数来确定更改了哪个选项,然后阅读文本。如果我能弄清楚如何从子菜单中使用 currenttext() 读取 QlineEdit,我可以检查用户是否在需要时更改了输入。
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, QActionGroup, QMenu, QApplication, QLineEdit, QWidgetAction
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.menubar = self.menuBar()
self.menubar.installEventFilter(self)
self.fileMenu = self.menubar.addMenu('&Circuit Set-Up')
self.populate()
self.setGeometry(300, 300, 300, 200)
self.show()
def triggered(self, action):
print(action.text())
def populate(self):
for m in range(3):
setattr(self,'impMenu'+str(m),QMenu('Channel'+str(m), self))
factors=['Enter Transducer Calibration Constant [default 1] = 1',
'Enter Gauge Factor [default 2] = 2',
'Passion Ratio [default 0.3] = 0.3']
for n in range(3):
ql = QLineEdit(factors[n])
ql.setMinimumWidth(350)
wAction = QWidgetAction(self)
wAction.setDefaultWidget(ql)
getattr(self,'impMenu'+str(m)).addAction(wAction)
self.fileMenu.addMenu(getattr(self,'impMenu'+str(m)))
setattr(self,'triggered'+str(m),self.triggered)
getattr(self,'impMenu'+str(m)).triggered.connect(getattr(self,'triggered'+str(m)))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
【问题讨论】:
-
什么时候获取文本:用户在QLineEdit中书写时,菜单打开时,菜单关闭时?
标签: python pyqt pyqt5 qlineedit qmenu