RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1198208
Accepted
Vladislav Grin
Vladislav Grin
Asked:2021-10-31 23:43:57 +0000 UTC2021-10-31 23:43:57 +0000 UTC 2021-10-31 23:43:57 +0000 UTC

Python - 代码的 GUI PyQt5 实现

  • 772
import math

# константы
tMethod = 'LZ77'
sizeSymbol = 8  # размер 1го символа в битах


# функции

def readInputText(fileName):
    tInput, nD, nB = '', 8, 5
    try:
        # пытаемся открыть файл на чтение
        f = open(fileName, 'rt', encoding='utf-8')
    except FileNotFoundError:
        # файл не найден - запрашиваем параметры с консоли
        tInput = input('\n введите исходное сообщение -').strip()
        try:
            nD = int(input('размер словаря (сим, default=8)-').strip())
        except ValueError:
            nD = 8
        try:
            nB = int(input('размер буфера (сим, default=5)-').strip())
        except ValueError:
            nB = 5
    else:
        # файл найден чтаем параметры из файла
        tInputLines = f.readlines()
        f.close()
        for tLine in tInputLines:
            if tLine[0:11] == 'tInputText=':
                tInput = tLine[11:].strip()
            elif tLine[0:6] == 'nDict=':
                try:
                    nD = int(tLine[6:].strip())
                except ValueError:
                    nD = 8
            elif tLine[0:6] == 'nBuff=':
                try:
                    nB = int(tLine[6:].strip())
                except ValueError:
                    nB = 8
    finally:
        # выводим параметры на консоль
        print('\n исхоное сообщение - {0}'.format(tInput))
        print('размер словаря - {0} сим.'.format(nD))
        print('размер буфера - {0} сим.'.format(nB))

        # сохраняем параметры в файл
        with open(fileName, 'wt', encoding='utf-8') as f:
            f.write('tInputText={0}\n'.format(tInput))
            f.write('nDict={0}\n'.format(nD))
            f.write('nBuff={0}\n'.format(nB))
    return tInput, nD, nB


# используем 36-ричную систему счисления для смещения и длины строки
def str36(num36):
    if (num36 >= 0) and (num36 <= 9):
        strNum = str(num36)
    elif (num36 >= 10) and (num36 <= 36):
        strNum = chr(0x0041 + num36 - 10)  # ord('A') = 0x0041
    else:
        strNum = 'Error'
    return strNum


##### вот здесь после else нужно добавить 3 строчки как сказал мой препод
def makeLZ77(d, ld, b, lb):
    i = d.find(b[0])
    # первый символ буфера в словаре не найден или это последний символ буфера
    if (i == -1) or (i == len(b) - 1):
        i = 0  # смещение
        n = 0  # длина подстроки
        Code = str36(i) + str36(n) + b[n]  # код lz77
    # первый символ буфера в словаре найден смещение - i
    else:
        n = 0  # длина подстроки
        while (n < len(d) - i) and (n < len(b)) and (b[n] == d[i + n]):
            # if n <= len(b):
            n += 1
            Code = str36(i) + str36(n) + b[n]  # код lz77
    sizeCode = ld + lb + sizeSymbol  # размер 1го lz77 кода в битах

    # сдвиг курсора код и размер кода
    return [n + 1, Code, sizeCode]


#####

def makeOutputText(fileName, tInput, nD, nB):
    print('\n' + 'метод {0}'.format(tMethod).center(max(nD, 7) + max(nB, 5) + 3 + 10))
    print('=={0}==={1}==={2}=='.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    print('| {0} | {1} | {2} |'.format('словарь'.center(max(nD, 7)), 'буфер'.center(max(nB, 5)), 'код'.center(3)))
    print('|-{0}-|-{1}-|-{2}-|'.format(''.ljust(max(nD, 7), '-'), ''.ljust(max(nB, 5), '-'), ''.ljust(3, '-')))
    f = open(fileName, 'wt', encoding='utf-8')
    f.write('метод {0}'.format(tMethod).center(max(nD, 7) + max(nB, 5) + 3 + 10) + '\n')
    f.write('=={0}==={1}==={2}==\n'.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    f.write('| {0} | {1} | {2} |\n'.format('словарь'.center(max(nD, 7)), 'буфер'.center(max(nB, 5)), 'код'.center(3)))
    f.write('|-{0}-|-{1}-|-{2}-|\n'.format(''.ljust(max(nD, 7), '-'), ''.ljust(max(nB, 5), '-'), ''.ljust(3, '-')))
    nInput = len(tInput)
    tOutput, sizeOutput = '', 0
    k = 0
    while k < nInput:
        if k < nD:  # определение содержимого словаря
            tDict = tInput[0:k]
        else:
            tDict = tInput[k - nD:k]
        tDict = tDict.rjust(nD, chr(0x02f3))
        # символ пустого месте также - 0x02da
        # определение содержимого буфера
        tBuff = tInput[k:k + nB]
        # получение сдвига курсора кода и его размера в битах
        if tMethod == 'LZ77':
            n, tCode, sizeCode = makeLZ77(tDict, math.ceil(math.log2(nD)), tBuff, math.ceil(math.log2(nB)))
        print('| {0} | {1} | {2} |'.format(tDict.ljust(max(nD, 7)), \
                                           tBuff.ljust(nB, chr(0x02da)).ljust(max(nB, 5)), tCode.ljust(3)))
        f.write('| {0} | {1} | {2} |'.format(tDict.ljust(max(nD, 7)), \
                                             tBuff.ljust(nB, chr(0x02da)).ljust(max(nB, 5)), tCode.ljust(3)))
        tOutput += tCode
        sizeOutput += sizeCode
        k += n
        # input()
    print('=={0}==={1}==={2}=='.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    f.write('=={0}==={1}==={2}==\n'.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    f.close()
    return tOutput, sizeOutput


def writeOutputText(fileName, tOutput, sizeOutput, nInput, nD):
    print('\n сжатое (по методу {0}) сообщение - {1}'.format(tMethod, tOutput))
    print('\n размер сжатого сообщения - {0} бит.'.format(sizeOutput))
    print('коэффициент сжатия - {0}.'.format(sizeOutput / (sizeSymbol * nInput)))

    with open(fileName, 'wt', encoding='utf-8') as f:
        f.write('tMethod={0}\n'.format(tMethod))
        f.write('tOutputText={0}\n'.format(tOutput))
        f.write('nDict={0}\n'.format(nD))
        f.write('\n размер сжатого сообщения - {} бит. \n'.format(sizeOutput))
        f.write('коэффициент сжатия - {0}.'.format(sizeOutput / (sizeSymbol * nInput)))
    return


# -*- Main -*-

# прочитаем исходное сообщение
tInputText, nDict, nBuff = readInputText('Lab2-1.txt')

# создадим сжатый текст
tOutputText, sizeOutputText = makeOutputText('Lab2-2.txt', tInputText, nDict, nBuff)

# сохраним сжатый текст
writeOutputText('Lab2-3.txt', tOutputText, sizeOutputText, len(tInputText), nDict)

请告诉我一个问题,您需要为此代码制作一个GUI(表单)。在自我执行的过程中,我遇到了很多无法做到的原因,因为我是第一次做这样的事情。

我附上代码:

from PyQt5.QtWidgets import  QApplication, QWidget
from PyQt5 import uic
import os
import math
tMethod = 'LZ77'
sizeSymbol = 8

class App(QWidget):
    def __init__(self):
        self.start()
        self.set()

        self.str36(num36=0)
        self.makeLZ77(d="", ld=0, b="", lb=0)
        self.OutputText(nD=0, nB=0)

    def start(self):
        self.ui = uic.loadUi("GUI.ui")
        self.ui.show()
        self.ui.textEdit.setText('')
        self.ui.textEdit_2.setText('')
        self.ui.textEdit_3.setText('')

    def set(self):
        self.ui.pushButton.clicked.connect(lambda: self.readInputText())

    def readInputText(self):
        text_old = ''
        imput = self.ui.textEdit.toPlainText()
        # Введите последовательность:
        text_old += '\n исходное сообщение - {0} = '+ imput

        # размер словаря (сим, default=8)-
        nD = self.ui.textEdit_2.toPlainText()
        text_old += '\n размер словаря - {0} = '+ nD

        # размер буфера (сим, default=5)-
        nB = self.ui.textEdit_3.toPlainText()
        text_old += '\n размер буфера - {0} сим. = '+ nB
        self.ui.label_5.setText(text_old)

    def str36(self,num36):
        if (num36 >= 0) and (num36 <= 9):
            strNum = str(num36)
        elif (num36 >= 10) and (num36 <= 36):
            strNum = chr(0x0041 + num36 - 10)  # ord('A') = 0x0041
        else:
            strNum = 'Error'
        return strNum

    def makeLZ77(self,d, ld, b, lb):
        i = d.find(b[0])
        # первый символ буфера в словаре не найден или это последний символ буфера
        if (i == -1) or (i == len(b) - 1):
            i = 0  # смещение
            n = 0  # длина подстроки
            Code = self.str36(i) + self.str36(n) + b[n]  # код lz77
        # первый символ буфера в словаре найден смещение - i
        else:
            n = 0  # длина подстроки
            while (n < len(d) - i) and (n < len(b)) and (b[n] == d[i + n]):
                # if n <= len(b):
                n += 1
                Code = self.str36(i) + self.str36(n) + b[n]  # код lz77
        sizeCode = ld + lb + sizeSymbol  # размер 1го lz77 кода в битах

        # сдвиг курсора код и размер кода
        return [n + 1, Code, sizeCode]

    def OutputText(self, nD, nB):
        self.ui.label_5.setText('\n' + 'метод {0}'.format(tMethod).center(max(nD, 7) + max(nB, 5) + 3 + 10))
        self.ui.label_5.setText('=={0}==={1}==={2}=='.format(''.ljust(max(nD, 7), '=') + ''.ljust(max(nB, 5), '=') + ''.ljust(3, '=')))
        self.ui.label_5.setText('| {0} | {1} | {2} |'.format('словарь'.center(max(nD, 7)) + 'буфер'.center(max(nB, 5)) + 'код'.center(3)))
        self.ui.label_5.setText('|-{0}-|-{1}-|-{2}-|'.format(''.ljust(max(nD, 7), '-') + ''.ljust(max(nB, 5), '-') + ''.ljust(3, '-')))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = App()
    app.exec_()  

我还附上了一张通过Qt Designer制作的GUI的照片

照片图形用户界面

如果有了解这些问题的人,请告诉我,我将非常感谢有机会交流。

还有另一个可能的版本,但我也无法正确编译它,因为我收到错误:

import math
from main import App
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import uic
import sys


# константы
tMethod = 'LZ77'
sizeSymbol = 8  # размер 1го символа в битах

# функции

def readInputText(fileName):
    listWidget = main.ui.listWidget
    textEdit = main.ui.textEdit
    textEdit_2 = main.ui.textEdit_2
    textEdit_3 = main.ui.textEdit_3

    tInput, nD, nB = '', 8, 5
    try:
        # пытаемся открыть файл на чтение
        f = open(fileName, 'rt', encoding='utf-8')
    except FutureWarning:
        # файл не найден - запрашиваем параметры с консоли
        tInput = textEdit.toPlainText()
        try:
            nD = textEdit_2.toPlainText()
        except ValueError:
            nD = 8
        try:
            nB = textEdit_3.toPlainText()
        except ValueError:
            nB = 5
    else:
        # файл найден чтаем параметры из файла
        tInputLines = f.readlines()
        f.close()
        for tLine in tInputLines:
            if tLine[0:11] == 'tInputText=':
                tInput = tLine[11:].strip()
            elif tLine[0:6] == 'nDict=':
                try:
                    nD = int(tLine[6:].strip())
                except ValueError:
                    nD = 8
            elif tLine[0:6] == 'nBuff=':
                try:
                    nB = int(tLine[6:].strip())
                except ValueError:
                    nB = 8
    finally:

        # сохраняем параметры в файл
        with open(fileName, 'wt', encoding='utf-8') as f:
            f.write('tInputText={0}\n'.format(tInput))
            f.write('nDict={0}\n'.format(nD))
            f.write('nBuff={0}\n'.format(nB))
    return tInput, nD, nB


# используем 36-ричную систему счисления для смещения и длины строки
def str36(num36):
    if (num36 >= 0) and (num36 <= 9):
        strNum = str(num36)
    elif (num36 >= 10) and (num36 <= 36):
        strNum = chr(0x0041 + num36 - 10)  # ord('A') = 0x0041
    else:
        strNum = 'Error'
    return strNum

##### вот здесь после else нужно добавить 3 строчки как сказал мой препод
def makeLZ77(d, ld, b, lb):
    i = d.find(b[0])
    # первый символ буфера в словаре не найден или это последний символ буфера
    if (i == -1) or (i == len(b) - 1):
        i = 0  # смещение
        n = 0  # длина подстроки
        Code = str36(i) + str36(n) + b[n]  # код lz77
    # первый символ буфера в словаре найден смещение - i
    else:
        n = 0  # длина подстроки
        while (n < len(d) - i) and (n < len(b)) and (b[n] == d[i + n]):
            # if n <= len(b):
            n += 1
            Code = str36(i) + str36(n) + b[n]  # код lz77
    sizeCode = ld + lb + sizeSymbol  # размер 1го lz77 кода в битах

    # сдвиг курсора код и размер кода
    return [n + 1, Code, sizeCode]

#####

def makeOutputText(fileName, tInput, nD, nB):
    print('\n' + 'метод {0}'.format(tMethod).center(max(nD, 7) + max(nB, 5) + 3 + 10))
    print('=={0}==={1}==={2}=='.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    print('| {0} | {1} | {2} |'.format('словарь'.center(max(nD, 7)), 'буфер'.center(max(nB, 5)), 'код'.center(3)))
    print('|-{0}-|-{1}-|-{2}-|'.format(''.ljust(max(nD, 7), '-'), ''.ljust(max(nB, 5), '-'), ''.ljust(3, '-')))
    f = open(fileName, 'wt', encoding='utf-8')
    f.write('метод {0}'.format(tMethod).center(max(nD, 7) + max(nB, 5) + 3 + 10) + '\n')
    f.write('=={0}==={1}==={2}==\n'.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    f.write('| {0} | {1} | {2} |\n'.format('словарь'.center(max(nD, 7)), 'буфер'.center(max(nB, 5)), 'код'.center(3)))
    f.write('|-{0}-|-{1}-|-{2}-|\n'.format(''.ljust(max(nD, 7), '-'), ''.ljust(max(nB, 5), '-'), ''.ljust(3, '-')))
    nInput = len(tInput)
    tOutput, sizeOutput = '', 0
    k = 0
    while k < nInput:
        if k < nD:  # определение содержимого словаря
            tDict = tInput[0:k]
        else:
            tDict = tInput[k - nD:k]
        tDict = tDict.rjust(nD, chr(0x02f3))
        # символ пустого месте также - 0x02da
        # определение содержимого буфера
        tBuff = tInput[k:k + nB]
        # получение сдвига курсора кода и его размера в битах
        if tMethod == 'LZ77':
            n, tCode, sizeCode = makeLZ77(tDict, math.ceil(math.log2(nD)), tBuff, math.ceil(math.log2(nB)))
        print('| {0} | {1} | {2} |'.format(tDict.ljust(max(nD, 7)), \
                                           tBuff.ljust(nB, chr(0x02da)).ljust(max(nB, 5)), tCode.ljust(3)))
        f.write('| {0} | {1} | {2} |'.format(tDict.ljust(max(nD, 7)), \
                                             tBuff.ljust(nB, chr(0x02da)).ljust(max(nB, 5)), tCode.ljust(3)))
        tOutput += tCode
        sizeOutput += sizeCode
        k += n
        # input()
    print('=={0}==={1}==={2}=='.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    f.write('=={0}==={1}==={2}==\n'.format(''.ljust(max(nD, 7), '='), ''.ljust(max(nB, 5), '='), ''.ljust(3, '=')))
    f.close()
    return tOutput, sizeOutput

def writeOutputText(fileName, tOutput, sizeOutput, nInput, nD):
    print('\n сжатое (по методу {0}) сообщение - {1}'.format(tMethod, tOutput))
    print('\n размер сжатого сообщения - {0} бит.'.format(sizeOutput))
    print('коэффициент сжатия - {0}.'.format(sizeOutput / (sizeSymbol * nInput)))

    with open(fileName, 'wt', encoding='utf-8') as f:
        f.write('tMethod={0}\n'.format(tMethod))
        f.write('tOutputText={0}\n'.format(tOutput))
        f.write('nDict={0}\n'.format(nD))
        f.write('\n размер сжатого сообщения - {} бит. \n'.format(sizeOutput))
        f.write('коэффициент сжатия - {0}.'.format(sizeOutput / (sizeSymbol * nInput)))
    return


# -*- Main -*-
if __name__ == '__main__':
        app = QApplication(sys.argv)
        main = App()
        main.ui.pushButton.clicked.connect(readInputText)
        app.exec_()
        # прочитаем исходное сообщение
        tInputText, nDict, nBuff = readInputText('Lab2-1.txt')

        # создадим сжатый текст
        tOutputText, sizeOutputText = makeOutputText('Lab2-2.txt', tInputText, nDict, nBuff)

        # сохраним сжатый текст
        writeOutputText('Lab2-3.txt', tOutputText, sizeOutputText, len(tInputText), nDict)
python
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    S. Nick
    2021-11-01T21:16:59Z2021-11-01T21:16:59Z

    我考虑了您第一次尝试制作 GUI(我没有考虑您的第二次尝试和代码的逻辑)。

    让我给你一些建议:

    • 您已经选择了主窗口小部件QWidget,因此当您创建表单时,您Qt Designer需要选择QWidget,而不是QDialog。

    • 嵌入包含应用程序设计的表单的一种方法如下所示:

      uic.loadUi('q1198208.ui', self)

    • 一个小部件最适合输入字符串数据QLineEdit

    • Widget最适合输入整数数据QSpinBox

    • 在开始任何计算之前,有必要尽可能多地检查输入数据。例如像这样:

        self.text_word = self.lineEdit.text()
        if not self.text_word:
            msg = QtWidgets.QMessageBox.information(self, 'Message', 'Введите Кодируемое слово.')
            return
      
    • 为了使输出具有正确的格式,您需要使用字体"Consolas"

    另外不要忘记提供重现问题所需的所有模块。模块.ui也需要发布。

    无需为您的尝试提供多种选择,专注于您认为最有希望的一种。

    主文件

    import sys
    import os
    import math
    from PyQt5 import QtWidgets, QtCore, QtGui, uic
    from PyQt5.QtWidgets import  QApplication, QWidget
    
    
    #tMethod = 'LZ77'
    #sizeSymbol = 8
    
    class Window(QWidget):
        def __init__(self):
            super(Window, self).__init__()
            
            #Загрузить страницу пользовательского интерфейса
            uic.loadUi('q1198208.ui', self)                             # !!!
    
            self.tMethod = 'LZ77'                                       # +
            self.sizeSymbol = 8                                         # +
            self.text_word = '' 
            self.size_dict = 0
            self.size_buffer = 0
    
            self.pushButton.clicked.connect(self.readInputText)         # !
    
            # !!! Это ВАЖНО !!  vvvvvvvv   !!! "Consolas" !!!!!!!!!!!!!!!!!!!!
            font = QtGui.QFont("Consolas", 10, QtGui.QFont.Bold)
            self.plainTextEdit.setFont(font)      # установить шрифт ТОЛЬКО для plainTextEdit
            self.plainTextEdit.setReadOnly(True)
    
        # ???        
        def str36(self, num36=0):
            if (num36 >= 0) and (num36 <= 9):
                strNum = str(num36)
            elif (num36 >= 10) and (num36 <= 36):
                strNum = chr(0x0041 + num36 - 10)                # ord('A') = 0x0041
            else:
                strNum = 'Error'
                msg = QtWidgets.QMessageBox.information(self, 'Message', 'strNum = "Error".')
            return strNum                                        # ???
    
        def readInputText(self):
            self.text_word = self.lineEdit.text()
            self.size_dict = self.spinBox.value()
            self.size_buffer = self.spinBox_2.value()
    
            if not self.text_word:
                msg = QtWidgets.QMessageBox.information(self, 'Message', 'Введите Кодируемое слово.')
                return
            if not self.size_dict:
                msg = QtWidgets.QMessageBox.information(self, 'Message', 'Введите Размер словаря.')
                return
            if not self.size_buffer:
                msg = QtWidgets.QMessageBox.information(self, 'Message', 'Введите Размер буфера.')
                return
    #        self.makeLZ77(d="", ld=0, b="", lb=0)
            self.outputText(nD=0, nB=0)
    
        def makeLZ77(self, d, ld, b, lb):
            i = d.find(b[0])
            # первый символ буфера в словаре не найден или это последний символ буфера
            if (i == -1) or (i == len(b) - 1):
                i = 0  # смещение
                n = 0  # длина подстроки
                Code = self.str36(i) + self.str36(n) + b[n]           # код lz77
            # первый символ буфера в словаре найден смещение - i
            else:
                n = 0  # длина подстроки
                while (n < len(d) - i) and (n < len(b)) and (b[n] == d[i + n]):
                    # if n <= len(b):
                    n += 1
                    Code = self.str36(i) + self.str36(n) + b[n]        # код lz77
            sizeCode = ld + lb + self.sizeSymbol                       # размер 1го lz77 кода в битах
    
            # сдвиг курсора код и размер кода
            return [n + 1, Code, sizeCode]
    
        def outputText(self, nD=0, nB=0):
            self.plainTextEdit.clear()
            self.plainTextEdit.appendPlainText(
                'метод {0}'.format(self.tMethod).center(max(nD, 7) + max(nB, 5) + 3 + 10)
            )
            self.plainTextEdit.appendPlainText(
                '=={0}==={1}==={2}=='.format(
                    ''.ljust(max(nD, 7), '='),                          # + \
                    ''.ljust(max(nB, 5), '='),                          # + \
                    ''.ljust(3, '=')
                )
            )
            self.plainTextEdit.appendPlainText(
                '| {0} | {1} | {2} |'.format(
                    'словарь'.center(max(nD, 7)),
                    'буфер'.center(max(nB, 5)),
                    'код'.center(3))
            )
            self.plainTextEdit.appendPlainText(
                '|-{0}-|-{1}-|-{2}-|'.format(
                    ''.ljust(max(nD, 7), '-'),
                    ''.ljust(max(nB, 5), '-'),
                    ''.ljust(3, '-'))
            )        
                
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        app.setFont(QtGui.QFont("Times", 10, QtGui.QFont.Bold))
        w = Window()
        w.show()
        sys.exit(app.exec_())
    

    q1198208.ui

    <?xml version="1.0" encoding="UTF-8"?>
    <ui version="4.0">
     <class>Form</class>
     <widget class="QWidget" name="Form">
      <property name="geometry">
       <rect>
        <x>0</x>
        <y>0</y>
        <width>520</width>
        <height>407</height>
       </rect>
      </property>
      <property name="windowTitle">
       <string>Form</string>
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
        <widget class="QLabel" name="label">
         <property name="font">
          <font>
           <pointsize>12</pointsize>
           <weight>75</weight>
           <bold>true</bold>
          </font>
         </property>
         <property name="text">
          <string>Решение</string>
         </property>
         <property name="alignment">
          <set>Qt::AlignCenter</set>
         </property>
        </widget>
       </item>
       <item row="1" column="0">
        <widget class="QPlainTextEdit" name="plainTextEdit"/>
       </item>
       <item row="2" column="0">
        <widget class="QFrame" name="frame">
         <property name="minimumSize">
          <size>
           <width>400</width>
           <height>120</height>
          </size>
         </property>
         <property name="frameShape">
          <enum>QFrame::StyledPanel</enum>
         </property>
         <property name="frameShadow">
          <enum>QFrame::Raised</enum>
         </property>
         <layout class="QHBoxLayout" name="horizontalLayout">
          <item>
           <layout class="QFormLayout" name="formLayout">
            <item row="0" column="0">
             <widget class="QLabel" name="label_2">
              <property name="text">
               <string>Кодируемое слово</string>
              </property>
             </widget>
            </item>
            <item row="0" column="1">
             <widget class="QLineEdit" name="lineEdit"/>
            </item>
            <item row="1" column="0">
             <widget class="QLabel" name="label_3">
              <property name="text">
               <string>Размер словаря</string>
              </property>
             </widget>
            </item>
            <item row="1" column="1">
             <widget class="QSpinBox" name="spinBox"/>
            </item>
            <item row="2" column="0">
             <widget class="QLabel" name="label_4">
              <property name="text">
               <string>Размер буфера</string>
              </property>
             </widget>
            </item>
            <item row="2" column="1">
             <widget class="QSpinBox" name="spinBox_2"/>
            </item>
            <item row="3" column="0">
             <widget class="QLabel" name="label_5">
              <property name="text">
               <string/>
              </property>
             </widget>
            </item>
            <item row="3" column="1">
             <widget class="QPushButton" name="pushButton">
              <property name="text">
               <string>Зашифровать</string>
              </property>
             </widget>
            </item>
           </layout>
          </item>
         </layout>
        </widget>
       </item>
      </layout>
     </widget>
     <resources/>
     <connections/>
    </ui>
    

    введите сюда описание изображения

    • 2

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5