1.定义按钮点击函数,但是在运行时函数直接启动,之后点击按钮无反应
函数定义如下:
def handleCalc():
info = textEdit.toPlainText()
# 薪资20000 以上 和 以下 的人员名单
salary_above_20k = ''
salary_below_20k = ''
for line in info.splitlines():
if not line.strip():
continue
parts = line.split(' ')
# 去掉列表中的空字符串内容
parts = [p for p in parts if p]
name, salary, age = parts
if int(salary) >= 20000:
salary_above_20k += name + '\n'
else:
salary_below_20k += name + '\n'
QMessageBox.about(window,
'统计结果',
f'''薪资20000 以上的有:\n{salary_above_20k}
\n薪资20000 以下的有:\n{salary_below_20k}'''
)
调用如下:
button = QPushButton('统计', window)
button.move(380,80)
button.clicked.connect(handleCalc())
这时启动程序会直接运行QMessageBox
问题在于函数绑定这里,应该改成
button.clicked.connect(handleCalc)
这时启动就正常了,原理暂未搞清,待深入之后补充
2.找不到PySide2模块
Fatal Python error: init_import_site: Failed to import the site module
Python runtime state: initialized
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit, QMessageBox, QLineEdit,QVBoxLayout
ModuleNotFoundError: No module named 'PySide2'
开头已经导入了模块,但是总是提示我出错,查看了一下发现,因为我把Python文件命名为“os.py”,导致和相关文件冲突,文件改名后就正常了。