From 61f59cac0ca5388bdf41bfce4be90101eb0a8f0d Mon Sep 17 00:00:00 2001 From: xpamych Date: Tue, 23 May 2023 22:52:31 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D0=BE=D0=B2=20ARK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- hlna.py | 192 +++++++++++++++++++++++++++++------------------------ hlnaui.py | 89 +++++++++++++------------ 3 files changed, 154 insertions(+), 130 deletions(-) diff --git a/.gitignore b/.gitignore index 3063fa0..df345ea 100644 --- a/.gitignore +++ b/.gitignore @@ -75,4 +75,5 @@ CMakeLists.txt.user* #pyproject *.pyproject *.pyproject.user -*.ui \ No newline at end of file +*.ui +settings.json \ No newline at end of file diff --git a/hlna.py b/hlna.py index ec84cb2..288e02c 100755 --- a/hlna.py +++ b/hlna.py @@ -508,39 +508,39 @@ WantedBy=default.target @click.argument('id_mods_ark', nargs=-1) def mod(g, m, i, id_mods_ark): if g == "ark": - id_game_workshop = "346110" if not os.path.isdir(dir_mods_ark): create_dir(dir_mods_ark) id_mods_ark = id_mods_ark[0].split(',') for id_mod in id_mods_ark: - dir_ark_mods = f"{dir_mods_ark}/{id_mod}" - if not os.path.isfile(f"{dir_ark_mods}.mod"): + dir_mod_ark = f"{dir_mods_ark}/{id_mod}" + if not os.path.isfile(f"{dir_mod_ark}.mod"): + print_line(f"{dir_mod_ark}.mod") if i: - moddownload(id_mod, id_game_workshop, dir_ark_mods) + moddownload(id_mod,dir_mod_ark) else: - os.system(f"rm -rf {dir_ark_mods}") - print_line(f"{dir_ark_mods} удалён") + os.system(f"rm -rf {dir_mod_ark}") + print_line(f"{dir_mod_ark} удалён") os.system(f"rm {dir_mods_ark}/{id_mod}.mod") print_line(f"{dir_mods_ark}/{id_mod}.mod удалён") - os.system(f"mv {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf {dir_ark_mods}/appworkshop_{id_game_workshop}.acf") else: - modupdate(g, m, id_mod, dir_ark_mods) + modupdate(g, m, id_mod, dir_mod_ark) + else: + print_line("Не поддерживаемая игра") -def modupdate(g, m, id_mod, dir_ark_mods): +def modupdate(g, m, id_mod, dir_mod_ark): if g == "ark": - if not os.path.isfile(os.path.join(dir_ark_mods, f"appworkshop_{id_mod}.acf")): - return - with open(os.path.join(dir_ark_mods, f"appworkshop_{id_mod}.acf"), "r") as f: + # if not os.path.isfile(os.path.join(dir_ark_mods, f"appworkshop_{id_mod}.acf")): + # return + with open(os.path.join(dir_mod_ark, f"appworkshop_346110.acf"), "r") as f: content = f.readlines() content = "".join(content) locale_date = "" - - for line in content.split("\n"): + for line in content.splitlines(): if '\t"WorkshopItemsInstalled"' in line: - for line in content.split("\n"): - if f'\t\t"{id_mod}"' in line: - locale_date = line.split('"')[5] + for line in content.splitlines(): + if f'\t\t"timeupdated"' in line: + locale_date = line.split('"')[3] if '}' in line: break break @@ -553,82 +553,92 @@ def modupdate(g, m, id_mod, dir_ark_mods): json_zapros = zapros.json() steam_date = json_zapros['response']['publishedfiledetails'][0]['time_updated'] - if steam_date and locale_date == steam_date: - return + if int(steam_date) != int(locale_date): + moddownload(g, m, id_mod, dir_mod_ark) + else: + print_line(f"Мод {id_mod} обновлен") - if steam_date and locale_date != steam_date: - print_line("хз") -def modupdateall(): +def modupdateall(g, m): + print_line("Вход в обновление всех") for file in os.listdir(dir_mods_ark): if os.path.isfile(os.path.join(dir_mods_ark, file)): if file.endswith('.mod'): - print(file) + id_mod = file.split(".")[0] + if id_mod == "111111111": + continue + dir_mod_ark = f"{dir_mods_ark}/{id_mod}" + modupdate(g, m, id_mod, dir_mod_ark) -def moddownload(id_mod, id_game_workshop, dir_ark_mods): +def moddownload(g, m, id_mod, dir_mod_ark): """Распаковывает файлы мода и создаёт .mod файл для него""" - dir_steam_workshop = f"{dir_workshop_ark}/content/{id_game_workshop}/{id_mod}/WindowsNoEditor" - dir_extract = dir_ark_mods - if id_mod == "111111111": - return - os.system(f"steamcmd +login anonymous +workshop_download_item {id_game_workshop} {id_mod} +quit") - try: - for curdir, subdirs, files in os.walk(os.path.join(dir_steam_workshop)): - for file in files: - name, ext = os.path.splitext(file) - if ext == ".z": - src = os.path.join(curdir, file) - dst = os.path.join(curdir, name) - uncompressed = os.path.join(curdir, file + ".uncompressed_size") - unpack(src, dst) - print("[+] Extracted " + file) - os.remove(src) - if os.path.isfile(uncompressed): - os.remove(uncompressed) - except Exception as e: - print(e) - print("[x] Unpacking .z files failed, aborting mod install") - return False + if g == "ark": + id_game_workshop = "346110" + dir_steam_workshop = f"{dir_workshop_ark}/content/{id_game_workshop}/{id_mod}/WindowsNoEditor" + dir_extract = dir_mod_ark + if id_mod == "111111111": + return + if os.path.isfile(f"{dir_workshop_ark}/appworkshop_{id_game_workshop}.acf"): + os.system(f"rm {dir_workshop_ark}/appworkshop_{id_game_workshop}.acf") + os.system(f"steamcmd +login anonymous +workshop_download_item {id_game_workshop} {id_mod} +quit") + try: + for curdir, subdirs, files in os.walk(os.path.join(dir_steam_workshop)): + for file in files: + name, ext = os.path.splitext(file) + if ext == ".z": + src = os.path.join(curdir, file) + dst = os.path.join(curdir, name) + uncompressed = os.path.join(curdir, file + ".uncompressed_size") + unpack(src, dst) + print("[+] Extracted " + file) + os.remove(src) + if os.path.isfile(uncompressed): + os.remove(uncompressed) + except Exception as e: + print(e) + print("[x] Unpacking .z files failed, aborting mod install") + return False - os.system(f"rm -rf {dir_ark_mods}") - os.system(f"mv -f {dir_steam_workshop} {dir_ark_mods}") + os.system(f"rm -rf {dir_mod_ark}") + os.system(f"mv -f {dir_steam_workshop} {dir_mod_ark}") - modname = subprocess.check_output( - ['curl', '-s', f'https://steamcommunity.com/sharedfiles/filedetails/?id={id_mod}']).decode('utf-8') - modname = re.search(r'
(.+)
', modname) - modname = modname and modname.group(1) + modname = subprocess.check_output( + ['curl', '-s', f'https://steamcommunity.com/sharedfiles/filedetails/?id={id_mod}']).decode('utf-8') + modname = re.search(r'
(.+)
', modname) + modname = modname and modname.group(1) - if os.path.isfile(f"{dir_ark_mods}.mod"): - os.remove(f"{dir_ark_mods}.mod") + if os.path.isfile(f"{dir_mod_ark}.mod"): + os.remove(f"{dir_mod_ark}.mod") - with open(f"{dir_extract}/mod.info", "rb") as modinfo: - data = modinfo.read() - mapnamelen = struct.unpack_from(" 1: diff --git a/hlnaui.py b/hlnaui.py index 7abe76d..293870d 100644 --- a/hlnaui.py +++ b/hlnaui.py @@ -9,11 +9,11 @@ from PyQt6 import QtCore, QtGui, QtWidgets -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.resize(1552, 1000) - self.centralwidget = QtWidgets.QWidget(parent=MainWindow) +class Ui_mainWindow(object): + def setupUi(self, mainWindow): + mainWindow.setObjectName("mainWindow") + mainWindow.resize(1552, 1000) + self.centralwidget = QtWidgets.QWidget(parent=mainWindow) self.centralwidget.setObjectName("centralwidget") self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName("horizontalLayout") @@ -35,9 +35,6 @@ class Ui_MainWindow(object): self.groupBox = QtWidgets.QGroupBox(parent=self.tab_5) self.groupBox.setTitle("") self.groupBox.setObjectName("groupBox") - self.textEdit = QtWidgets.QTextEdit(parent=self.groupBox) - self.textEdit.setGeometry(QtCore.QRect(10, 30, 441, 31)) - self.textEdit.setObjectName("textEdit") self.label = QtWidgets.QLabel(parent=self.groupBox) self.label.setGeometry(QtCore.QRect(10, 10, 81, 18)) self.label.setScaledContents(True) @@ -87,6 +84,10 @@ class Ui_MainWindow(object): self.checkBox = QtWidgets.QCheckBox(parent=self.groupBox) self.checkBox.setGeometry(QtCore.QRect(140, 200, 301, 31)) self.checkBox.setObjectName("checkBox") + self.lineEdit_ARK = QtWidgets.QLineEdit(parent=self.groupBox) + self.lineEdit_ARK.setGeometry(QtCore.QRect(10, 30, 441, 32)) + self.lineEdit_ARK.setText("") + self.lineEdit_ARK.setObjectName("lineEdit_ARK") self.gridLayout_3.addWidget(self.groupBox, 0, 0, 1, 1) self.groupBox_2 = QtWidgets.QGroupBox(parent=self.tab_5) self.groupBox_2.setObjectName("groupBox_2") @@ -104,9 +105,6 @@ class Ui_MainWindow(object): self.groupBox_3 = QtWidgets.QGroupBox(parent=self.tab_2) self.groupBox_3.setTitle("") self.groupBox_3.setObjectName("groupBox_3") - self.textEdit_8 = QtWidgets.QTextEdit(parent=self.groupBox_3) - self.textEdit_8.setGeometry(QtCore.QRect(10, 30, 441, 31)) - self.textEdit_8.setObjectName("textEdit_8") self.label_8 = QtWidgets.QLabel(parent=self.groupBox_3) self.label_8.setGeometry(QtCore.QRect(10, 10, 81, 18)) self.label_8.setScaledContents(True) @@ -139,65 +137,68 @@ class Ui_MainWindow(object): self.label_14.setGeometry(QtCore.QRect(10, 180, 131, 18)) self.label_14.setScaledContents(True) self.label_14.setObjectName("label_14") + self.lineEdit = QtWidgets.QLineEdit(parent=self.groupBox_3) + self.lineEdit.setGeometry(QtCore.QRect(10, 30, 441, 32)) + self.lineEdit.setObjectName("lineEdit") self.gridLayout.addWidget(self.groupBox_3, 0, 0, 1, 1) self.groupBox_4 = QtWidgets.QGroupBox(parent=self.tab_2) self.groupBox_4.setObjectName("groupBox_4") self.gridLayout.addWidget(self.groupBox_4, 0, 1, 1, 1) self.tabWidget.addTab(self.tab_2, "") self.horizontalLayout.addWidget(self.tabWidget) - MainWindow.setCentralWidget(self.centralwidget) - self.menubar = QtWidgets.QMenuBar(parent=MainWindow) + mainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(parent=mainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1552, 30)) self.menubar.setObjectName("menubar") - MainWindow.setMenuBar(self.menubar) - self.statusbar = QtWidgets.QStatusBar(parent=MainWindow) + mainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(parent=mainWindow) self.statusbar.setObjectName("statusbar") - MainWindow.setStatusBar(self.statusbar) + mainWindow.setStatusBar(self.statusbar) - self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(1) + self.retranslateUi(mainWindow) + self.tabWidget.setCurrentIndex(0) self.tabWidget_2.setCurrentIndex(0) - QtCore.QMetaObject.connectSlotsByName(MainWindow) + QtCore.QMetaObject.connectSlotsByName(mainWindow) - def retranslateUi(self, MainWindow): + def retranslateUi(self, mainWindow): _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) - self.label.setText(_translate("MainWindow", "Имя сессии")) - self.textEdit_2.setHtml(_translate("MainWindow", "\n" + mainWindow.setWindowTitle(_translate("mainWindow", "HLN-A")) + self.label.setText(_translate("mainWindow", "Имя сессии")) + self.textEdit_2.setHtml(_translate("mainWindow", "\n" "\n" "

7777

")) - self.label_2.setText(_translate("MainWindow", "Порт")) - self.label_3.setText(_translate("MainWindow", "Querry порт")) - self.textEdit_3.setHtml(_translate("MainWindow", "\n" + self.label_2.setText(_translate("mainWindow", "Порт")) + self.label_3.setText(_translate("mainWindow", "Querry порт")) + self.textEdit_3.setHtml(_translate("mainWindow", "\n" "\n" "

27015

")) - self.textEdit_4.setHtml(_translate("MainWindow", "\n" + self.textEdit_4.setHtml(_translate("mainWindow", "\n" "\n" "

27042

")) - self.label_4.setText(_translate("MainWindow", "Rcon порт")) - self.label_5.setText(_translate("MainWindow", "Пароль сессии")) - self.label_6.setText(_translate("MainWindow", "Пароль администратора")) - self.label_7.setText(_translate("MainWindow", "Количество игроков")) - self.checkBox.setText(_translate("MainWindow", "Передавать в глобальный список серверов")) - self.groupBox_2.setTitle(_translate("MainWindow", "ini")) - self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), _translate("MainWindow", "Tab 1")) - self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_6), _translate("MainWindow", "Tab 2")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "ARK")) - self.label_8.setText(_translate("MainWindow", "Имя сессии")) - self.textEdit_9.setHtml(_translate("MainWindow", "\n" + self.label_4.setText(_translate("mainWindow", "Rcon порт")) + self.label_5.setText(_translate("mainWindow", "Пароль сессии")) + self.label_6.setText(_translate("mainWindow", "Пароль администратора")) + self.label_7.setText(_translate("mainWindow", "Количество игроков")) + self.checkBox.setText(_translate("mainWindow", "Передавать в глобальный список серверов")) + self.groupBox_2.setTitle(_translate("mainWindow", "ini")) + self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), _translate("mainWindow", "Tab 1")) + self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_6), _translate("mainWindow", "Tab 2")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("mainWindow", "ARK")) + self.label_8.setText(_translate("mainWindow", "Имя сессии")) + self.textEdit_9.setHtml(_translate("mainWindow", "\n" "\n" "


")) - self.label_9.setText(_translate("MainWindow", "Порт")) - self.label_12.setText(_translate("MainWindow", "Пароль сессии")) - self.label_13.setText(_translate("MainWindow", "Пароль администратора")) - self.label_14.setText(_translate("MainWindow", "Количество игроков")) - self.groupBox_4.setTitle(_translate("MainWindow", "xml")) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "7 Days to Die")) + self.label_9.setText(_translate("mainWindow", "Порт")) + self.label_12.setText(_translate("mainWindow", "Пароль сессии")) + self.label_13.setText(_translate("mainWindow", "Пароль администратора")) + self.label_14.setText(_translate("mainWindow", "Количество игроков")) + self.groupBox_4.setTitle(_translate("mainWindow", "xml")) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("mainWindow", "7 Days to Die")) From 7564e0ae73bb46e5d17c4e65e473d30932125395 Mon Sep 17 00:00:00 2001 From: xpamych Date: Tue, 23 May 2023 23:11:49 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5?= =?UTF-8?q?=D0=B5=D0=B5=D0=B5=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hlnaui.py | 70 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 62 insertions(+), 8 deletions(-) diff --git a/hlnaui.py b/hlnaui.py index 293870d..82c2c04 100644 --- a/hlnaui.py +++ b/hlnaui.py @@ -12,11 +12,11 @@ from PyQt6 import QtCore, QtGui, QtWidgets class Ui_mainWindow(object): def setupUi(self, mainWindow): mainWindow.setObjectName("mainWindow") - mainWindow.resize(1552, 1000) + mainWindow.resize(1405, 1025) self.centralwidget = QtWidgets.QWidget(parent=mainWindow) self.centralwidget.setObjectName("centralwidget") - self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) - self.horizontalLayout.setObjectName("horizontalLayout") + self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) + self.verticalLayout.setObjectName("verticalLayout") self.tabWidget = QtWidgets.QTabWidget(parent=self.centralwidget) self.tabWidget.setMaximumSize(QtCore.QSize(1551, 941)) self.tabWidget.setObjectName("tabWidget") @@ -25,8 +25,9 @@ class Ui_mainWindow(object): self.gridLayout_2 = QtWidgets.QGridLayout(self.tab) self.gridLayout_2.setObjectName("gridLayout_2") self.tabWidget_2 = QtWidgets.QTabWidget(parent=self.tab) + self.tabWidget_2.setAutoFillBackground(False) self.tabWidget_2.setTabsClosable(True) - self.tabWidget_2.setTabBarAutoHide(True) + self.tabWidget_2.setTabBarAutoHide(False) self.tabWidget_2.setObjectName("tabWidget_2") self.tab_5 = QtWidgets.QWidget() self.tab_5.setObjectName("tab_5") @@ -82,12 +83,47 @@ class Ui_mainWindow(object): self.label_7.setScaledContents(True) self.label_7.setObjectName("label_7") self.checkBox = QtWidgets.QCheckBox(parent=self.groupBox) - self.checkBox.setGeometry(QtCore.QRect(140, 200, 301, 31)) + self.checkBox.setGeometry(QtCore.QRect(150, 200, 301, 31)) self.checkBox.setObjectName("checkBox") self.lineEdit_ARK = QtWidgets.QLineEdit(parent=self.groupBox) self.lineEdit_ARK.setGeometry(QtCore.QRect(10, 30, 441, 32)) - self.lineEdit_ARK.setText("") self.lineEdit_ARK.setObjectName("lineEdit_ARK") + self.lineEdit_ARK_2 = QtWidgets.QLineEdit(parent=self.groupBox) + self.lineEdit_ARK_2.setGeometry(QtCore.QRect(30, 790, 441, 32)) + self.lineEdit_ARK_2.setText("") + self.lineEdit_ARK_2.setObjectName("lineEdit_ARK_2") + self.pushButton = QtWidgets.QPushButton(parent=self.groupBox) + self.pushButton.setGeometry(QtCore.QRect(480, 790, 88, 34)) + self.pushButton.setObjectName("pushButton") + self.label_10 = QtWidgets.QLabel(parent=self.groupBox) + self.label_10.setGeometry(QtCore.QRect(30, 760, 91, 18)) + self.label_10.setScaledContents(True) + self.label_10.setObjectName("label_10") + self.comboBox = QtWidgets.QComboBox(parent=self.groupBox) + self.comboBox.setGeometry(QtCore.QRect(10, 280, 441, 32)) + self.comboBox.setObjectName("comboBox") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.comboBox.addItem("") + self.label_11 = QtWidgets.QLabel(parent=self.groupBox) + self.label_11.setGeometry(QtCore.QRect(10, 260, 91, 18)) + self.label_11.setScaledContents(True) + self.label_11.setObjectName("label_11") + self.checkBox_2 = QtWidgets.QCheckBox(parent=self.groupBox) + self.checkBox_2.setGeometry(QtCore.QRect(470, 30, 88, 22)) + self.checkBox_2.setObjectName("checkBox_2") + self.lineEdit_ARK_3 = QtWidgets.QLineEdit(parent=self.groupBox) + self.lineEdit_ARK_3.setGeometry(QtCore.QRect(470, 60, 261, 32)) + self.lineEdit_ARK_3.setObjectName("lineEdit_ARK_3") self.gridLayout_3.addWidget(self.groupBox, 0, 0, 1, 1) self.groupBox_2 = QtWidgets.QGroupBox(parent=self.tab_5) self.groupBox_2.setObjectName("groupBox_2") @@ -145,10 +181,10 @@ class Ui_mainWindow(object): self.groupBox_4.setObjectName("groupBox_4") self.gridLayout.addWidget(self.groupBox_4, 0, 1, 1, 1) self.tabWidget.addTab(self.tab_2, "") - self.horizontalLayout.addWidget(self.tabWidget) + self.verticalLayout.addWidget(self.tabWidget) mainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(parent=mainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 1552, 30)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 1405, 30)) self.menubar.setObjectName("menubar") mainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(parent=mainWindow) @@ -186,6 +222,24 @@ class Ui_mainWindow(object): self.label_6.setText(_translate("mainWindow", "Пароль администратора")) self.label_7.setText(_translate("mainWindow", "Количество игроков")) self.checkBox.setText(_translate("mainWindow", "Передавать в глобальный список серверов")) + self.lineEdit_ARK.setText(_translate("mainWindow", "Имя сессии ")) + self.pushButton.setText(_translate("mainWindow", "PushButton")) + self.label_10.setText(_translate("mainWindow", "Rcon команда")) + self.comboBox.setItemText(0, _translate("mainWindow", "Остров (The Island)")) + self.comboBox.setItemText(1, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(2, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(3, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(4, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(5, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(6, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(7, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(8, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(9, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(10, _translate("mainWindow", "Новый элемент")) + self.comboBox.setItemText(11, _translate("mainWindow", "Новый элемент")) + self.label_11.setText(_translate("mainWindow", "Карта")) + self.checkBox_2.setText(_translate("mainWindow", "Кластер")) + self.lineEdit_ARK_3.setText(_translate("mainWindow", "Имя кластера")) self.groupBox_2.setTitle(_translate("mainWindow", "ini")) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_5), _translate("mainWindow", "Tab 1")) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_6), _translate("mainWindow", "Tab 2"))