You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.9 KiB

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QTextEdit, QFileDialog
import cppy.cp_util as util
# 工具函数
def extract_words(path_to_file):
return util.extract_words(path_to_file)
def frequencies(word_list):
return util.get_frequencies(word_list)
def sort(word_freq):
return util.sort_dict(word_freq)
class MenuApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('终端菜单')
self.setGeometry(100, 100, 400, 300)
# 创建按钮
self.openFileBtn = QPushButton('上传并打开文件', self)
self.continueBtn = QPushButton('继续', self)
self.exitBtn = QPushButton('退出', self)
# 创建文本编辑框
self.textEdit = QTextEdit(self)
self.textEdit.setReadOnly(True)
# 布局
layout = QVBoxLayout()
layout.addWidget(self.openFileBtn)
layout.addWidget(self.continueBtn)
layout.addWidget(self.exitBtn)
layout.addWidget(self.textEdit)
self.setLayout(layout)
# 信号连接到槽
self.openFileBtn.clicked.connect(self.openFile)
self.continueBtn.clicked.connect(self.clearText)
self.exitBtn.clicked.connect(self.close)
def openFile(self):
options = QFileDialog.Options()
fileName, _ = QFileDialog.getOpenFileName(self, "上传并打开文件", "", "All Files (*);;Text Files (*.txt)", options=options)
word_freqs = sort( frequencies(extract_words( fileName )) )
s = ''
for (w, c) in word_freqs[ :10 ]:
s = s + w + '-' + str(c)+'\n'
self.textEdit.setText(s)
def clearText(self):
self.textEdit.clear()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MenuApp()
ex.show()
sys.exit(app.exec_())