Exemplo n.º 1
0
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}')
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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"))
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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}''')
Exemplo n.º 7
0
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}''')
Exemplo n.º 8
0
    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_())
Exemplo n.º 9
0
#!/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_()
Exemplo n.º 10
0
    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)
Exemplo n.º 11
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_()