class WageStat(object): def __init__(self): self.window = QMainWindow() self.window.resize(600, 500) self.window.setWindowTitle('薪酬统筹') self.textEdit = QPlainTextEdit(self.window) self.textEdit.setPlaceholderText('请输入薪资表') self.textEdit.resize(400, 400) self.textEdit.move(100, 25) self.button = QPushButton('统计', self.window) self.button.move(250, 450) self.button.clicked.connect(self.__handler_click) def __handler_click(self): info = self.textEdit.toPlainText() info = info.split('\n') name = '' for data in info: num = re.search(r'\d{4,}', data) if num: if int(num.group()) <= 20000: name += data[0:4] + '\n' else: print('匹配失败') QMessageBox.about(self.window, '统计结果', f'薪资低于2万人员名单\n{name}')
class QLogsWindow(QDialog): appendLogSignal = Signal(str) vbox: QVBoxLayout textbox: QPlainTextEdit clear_button: QPushButton _logging_handler: typing.Optional[HookableInMemoryHandler] def __init__(self): super().__init__() self.setWindowTitle("Logs") self.setMinimumSize(400, 100) self.resize(1000, 450) self.setWindowIcon(QIcon("./resources/icon.png")) self.vbox = QVBoxLayout() self.setLayout(self.vbox) self.textbox = QPlainTextEdit(self) self.textbox.setReadOnly(True) self.textbox.setLineWrapMode(QPlainTextEdit.LineWrapMode.NoWrap) self.textbox.move(10, 10) self.textbox.resize(1000, 450) self.textbox.setStyleSheet( "font-family: 'Courier New', monospace; background: #1D2731;") self.vbox.addWidget(self.textbox) self.clear_button = QPushButton(self) self.clear_button.setText("CLEAR") self.clear_button.setProperty("style", "btn-primary") self.clear_button.clicked.connect(self.clearLogs) self.vbox.addWidget(self.clear_button) self.appendLogSignal.connect(self.appendLog) self._logging_handler = None logger = logging.getLogger() for handler in logger.handlers: if isinstance(handler, HookableInMemoryHandler): self._logging_handler = handler break if self._logging_handler is not None: self.textbox.setPlainText(self._logging_handler.log) self.textbox.moveCursor(QTextCursor.End) # The Handler might be called from a different thread, # so use signal/slot to properly handle the event in the main thread. # https://github.com/dcs-liberation/dcs_liberation/issues/1493 self._logging_handler.setHook(self.appendLogSignal.emit) else: self.textbox.setPlainText("WARNING: logging not initialized!") def clearLogs(self) -> None: if self._logging_handler is not None: self._logging_handler.clearLog() self.textbox.setPlainText("") def appendLog(self, msg: str): self.textbox.appendPlainText(msg) self.textbox.moveCursor(QTextCursor.End)
class QNotesWindow(QDialog): def __init__(self, game: Game): super(QNotesWindow, self).__init__() self.game = game self.setWindowTitle("Notes") self.setWindowIcon(CONST.ICONS["Notes"]) self.setMinimumSize(400, 100) self.resize(600, 450) self.vbox = QVBoxLayout() self.setLayout(self.vbox) self.vbox.addWidget( QLabel("Saved notes are available as a page in your kneeboard.") ) self.textbox = QPlainTextEdit(self) try: self.textbox.setPlainText(self.game.notes) self.textbox.moveCursor(QTextCursor.End) except AttributeError: # old save may not have game.notes pass self.textbox.move(10, 10) self.textbox.resize(600, 450) self.textbox.setStyleSheet("background: #1D2731;") self.vbox.addWidget(self.textbox) self.button_row = QHBoxLayout() self.vbox.addLayout(self.button_row) self.clear_button = QPushButton(self) self.clear_button.setText("CLEAR") self.clear_button.setProperty("style", "btn-primary") self.clear_button.clicked.connect(self.clearNotes) self.button_row.addWidget(self.clear_button) self.save_button = QPushButton(self) self.save_button.setText("SAVE") self.save_button.setProperty("style", "btn-success") self.save_button.clicked.connect(self.saveNotes) self.button_row.addWidget(self.save_button) def clearNotes(self) -> None: self.textbox.setPlainText("") def saveNotes(self) -> None: self.game.notes = self.textbox.toPlainText() self.save_button.setText("SAVED") QTimer.singleShot(5000, lambda: self.save_button.setText("SAVE"))
class JosephusUIOnPyside2(QTUI): def __init__(self, title) -> None: self.window = QMainWindow() self.window.resize(500, 400) self.window.move(300, 310) self.window.setWindowTitle(title) self.textEdit = QPlainTextEdit(self.window) self.textEdit.setPlaceholderText("Please input people's items") self.textEdit.move(10, 25) self.textEdit.resize(300, 350) self.button = QPushButton('Generate survior', self.window) self.button.move(380, 80) self.button.clicked.connect(self.handle_button) def handle_button(self) -> None: people_info = self.textEdit.toPlainText() reader = [] for row in people_info: data = row(read_files.str2list_row) reader.append(data) ring = Josephus.Ring(reader) ring.start = 0 ring.step = 1 res = ring.query_list_all() size_res = len(res) generator = ring.iter() survior = '' for i in range(size_res): some_one = next(generator) if some_one == None: break if i == size_res - 1: survior = 'Survivor\'s name is' + some_one.name + \ 'age is' + some_one.age + 'gender is' + some_one.gender else: continue QmessageBox.about(self.window, 'Survior\'s items', survior)
class Stats(): def __init__(self): self.window = QMainWindow() self.window.resize(500, 400) self.window.move(300, 300) self.window.setWindowTitle('薪资统计') self.textEdit = QPlainTextEdit(self.window) self.textEdit.setPlaceholderText('请输入薪资表') self.textEdit.move(10, 25) self.textEdit.resize(300, 350) self.button = QPushButton('统计', self.window) self.button.move(380, 80) self.button.clicked.connect(self.handleCalc) pass def handleCalc(self): info = self.textEdit.toPlainText() salary_above_20k = '' salary_below_20k = '' for line in info.splitlines(): if not line.strip(): continue pass parts = line.split(' ') print(type(parts)) parts = [p for p in parts if p] name, salary, age = parts if int(salary) >= 20000: salary_above_20k += name + '\n' pass else: salary_below_20k += name + '\n' pass pass QMessageBox.about( self.window, '统计结果', f'''薪资20000 以上的有:\n{salary_above_20k} \n薪资20000 以下的有:\n{salary_below_20k}''') pass pass
class Stats(): def __init__(self): self.window = QMainWindow() self.window.resize(500, 400) self.window.move(300, 300) self.window.setWindowTitle('学生管理系统') self.label_account = QLabel(self.window) self.label_password = QLabel(self.window) self.label_account.setText("账号") self.label_password.setText("密码") self.textEdit = QPlainTextEdit(self.window) self.textEdit.setPlaceholderText("请输入薪资表") self.textEdit.move(10, 25) self.textEdit.resize(300, 350) self.button = QPushButton('统计', self.window) self.button.move(380, 80) self.button.clicked.connect(self.handleCalc) def handleCalc(self): info = self.textEdit.toPlainText() print(info) # 薪资20000 以上 和 以下 的人员名单 salary_above_20k = '' salary_below_20k = '' for line in info.splitlines(): print(line) 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( self.window, '统计结果', f'''薪资20000 以上的有:\n{salary_above_20k} \n薪资20000 以下的有:\n{salary_below_20k}''')
class Stats(): def __init__(self): # 主窗口 self.window = QMainWindow() self.window.resize(500, 400) self.window.move(300, 300) self.window.setWindowTitle('薪资统计') # 纯文本框 self.textEdit = QPlainTextEdit(self.window) self.textEdit.setPlaceholderText("请输入薪资表") self.textEdit.move(10, 25) self.textEdit.resize(300, 350) # 按钮 self.button = QPushButton('统计', self.window) self.button.move(380, 80) # 按钮绑定响应函数 self.button.clicked.connect(self.handleCalc) def handleCalc(self): # 获取纯文本框里的内容 info = self.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( self.window, '统计结果', f'''薪资20000 以上的有:\n{salary_above_20k} \n薪资20000 以下的有:\n{salary_below_20k}''')
for data in info: wage = re.search(r"\d{4,}", data) if wage: if int(wage.group()) <= 20000: name_list += data[0:4] + '\n' else: print('格式有误') QMessageBox.about(window, '统计结果', '薪资20000以下的有\n' f'{name_list}') if __name__ == '__main__': app = QApplication(sys.argv) window = QMainWindow() window.resize(600, 500) window.setWindowTitle('薪资统筹') # 输入面板 textEdit = QPlainTextEdit(window) textEdit.setPlaceholderText('请输入薪资表') textEdit.move(100, 50) textEdit.resize(400, 300) # 按钮 button = QPushButton('统计', window) button.move(250, 400) button.clicked.connect(handler_click) # 显示和退出 window.show() sys.exit(app.exec_())
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author : 影子 # @Time : 2020-10-25 18:25 # @Software: PyCharm # @File : PySide2_01.py # 用户输入一段文本包含:员工姓名,薪资,年龄。把薪资在 2万 以上、以下的人员名单分别打印出来 import os from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit # 增加环境变量 # https://blog.csdn.net/liuzhuchen/article/details/101348454?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.add_param_isCf # envpath = r'D:\ProgramData\Anaconda3\Lib\site-packages\PySide2\plugins\platforms' # os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = envpath app = QApplication([]) # 初始化操作提供整个图形界面程序的底层管理功能:初始化、程序入口参数的处理,用户事件等 window = QMainWindow() window.resize(500, 400) window.move(300, 310) window.setWindowTitle("薪资统计") textEdit = QPlainTextEdit(window) textEdit.setPlaceholderText("请输入薪资表") textEdit.move(10, 25) textEdit.resize(300, 350) button = QPushButton("统计", window) button.move(380, 80) window.show() app.exec_()
except Exception as e: result = f'{port}端口关闭' win.append(result) #QMessageBox.about(window,'扫描结果',result) app = QApplication([]) window = QMainWindow() window.resize(500, 270) window.move(300, 300) window.setWindowTitle('端口扫描') textEdit1 = QPlainTextEdit(window) #textEdit1.setPlaceholderText("输入IP") textEdit1.move(10, 50) textEdit1.resize(200, 40) textEdit2 = QPlainTextEdit(window) #textEdit2.setPlaceholderText("输入端口") textEdit2.move(10, 130) textEdit2.resize(200, 40) textEdit3 = QPlainTextEdit(window) #textEdit3.setPlaceholderText("超时(毫秒)") textEdit3.move(10, 210) textEdit3.resize(200, 40) label1 = QLabel(window) label1.setText('输入IP') label1.move(80, 0)
def handle(): query = textEdit.toPlainText() s = Scholar(query, root='/Users/tangxiangong/Downloads') s.search() r = s.get_html_root() QMessageBox.about( window, "Result", f"Successfully!\nThe html files are saved in the directory {r}.") app = QApplication([]) window = QMainWindow() window.resize(800, 600) window.move(300, 310) window.setWindowTitle("谷歌学术") textEdit = QPlainTextEdit(window) textEdit.setPlaceholderText("请输入关键字") textEdit.move(45, 45) textEdit.resize(500, 30) button = QPushButton("搜索", window) button.move(555, 40) button.resize(80, 40) button.clicked.connect(handle) window.show() app.exec_()