Почему при запуске конвертируемой программы на PyQt5 интерфейс не отображается?
Программа до конвертации
from PyQt5 import QtWidgets, uic
import sys
app = QtWidgets.QApplication(sys.argv)
window = uic.loadUi("ui.ui")
window.show()
sys.exit(app.exec_())
Программа после конвертации
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(400, 300)
MainWindow.setMinimumSize(QtCore.QSize(400, 300))
MainWindow.setMaximumSize(QtCore.QSize(400, 300))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("Downloads/icon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.Russian, QtCore.QLocale.Russia))
MainWindow.setIconSize(QtCore.QSize(30, 30))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(10, 10, 381, 241))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.label = QtWidgets.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(10, 10, 151, 16))
self.label.setObjectName("label")
self.checkBox = QtWidgets.QCheckBox(self.tab)
self.checkBox.setGeometry(QtCore.QRect(20, 30, 16, 20))
self.checkBox.setText("")
self.checkBox.setObjectName("checkBox")
self.comboBox = QtWidgets.QComboBox(self.tab)
self.comboBox.setGeometry(QtCore.QRect(150, 30, 61, 22))
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.label_2 = QtWidgets.QLabel(self.tab)
self.label_2.setGeometry(QtCore.QRect(10, 70, 161, 16))
self.label_2.setObjectName("label_2")
self.checkBox_2 = QtWidgets.QCheckBox(self.tab)
self.checkBox_2.setGeometry(QtCore.QRect(20, 90, 16, 20))
self.checkBox_2.setText("")
self.checkBox_2.setObjectName("checkBox_2")
self.comboBox_2 = QtWidgets.QComboBox(self.tab)
self.comboBox_2.setGeometry(QtCore.QRect(50, 90, 81, 22))
self.comboBox_2.setObjectName("comboBox_2")
self.label_3 = QtWidgets.QLabel(self.tab)
self.label_3.setGeometry(QtCore.QRect(10, 130, 171, 16))
self.label_3.setObjectName("label_3")
self.checkBox_3 = QtWidgets.QCheckBox(self.tab)
self.checkBox_3.setGeometry(QtCore.QRect(20, 150, 16, 20))
self.checkBox_3.setText("")
self.checkBox_3.setObjectName("checkBox_3")
self.comboBox_3 = QtWidgets.QComboBox(self.tab)
self.comboBox_3.setGeometry(QtCore.QRect(50, 150, 81, 22))
self.comboBox_3.setObjectName("comboBox_3")
self.comboBox_11 = QtWidgets.QComboBox(self.tab)
self.comboBox_11.setGeometry(QtCore.QRect(50, 30, 81, 22))
self.comboBox_11.setObjectName("comboBox_11")
self.comboBox_12 = QtWidgets.QComboBox(self.tab)
self.comboBox_12.setGeometry(QtCore.QRect(150, 90, 61, 22))
self.comboBox_12.setObjectName("comboBox_12")
self.comboBox_12.addItem("")
self.comboBox_12.addItem("")
self.comboBox_12.addItem("")
self.comboBox_13 = QtWidgets.QComboBox(self.tab)
self.comboBox_13.setGeometry(QtCore.QRect(150, 150, 61, 22))
self.comboBox_13.setObjectName("comboBox_13")
self.comboBox_13.addItem("")
self.comboBox_13.addItem("")
self.comboBox_13.addItem("")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setWhatsThis("")
self.tab_2.setAccessibleName("")
self.tab_2.setLayoutDirection(QtCore.Qt.LeftToRight)
self.tab_2.setObjectName("tab_2")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Конвертировал с помощью команды pyuic5 ui.ui -o main.py -x в командной строке.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Видимо надо обновляться до версии 5.2. или попробуйте так:
import sys
from PyQt5 import QtWidgets, uic
class MainApp(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("q1189493.ui", self)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
w = MainApp()
w.show()
sys.exit(app.exec_())
Update
Насколько я понял, вы используете нековертированный файл. А мне нужен ковертированный, для того чтобы в дальнейшем можно было прописать функционал графического интерфейса.
Способ встраивания вашей формы, которую вы подготовили в Qt Designer,
никак не влияет на дальнейшее написание вашей логики.
Я уже начал писать функционал, продолжайте:
import sys
from PyQt5 import QtWidgets, uic
class MainApp(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("q1189493.ui", self)
# Тут вы пишите свой функционал ...
# ...
self.pushButton.clicked.connect(lambda: print(f"Hello Button: {self.pushButton.text()}"))
print(self.tabWidget.currentIndex())
self.tabWidget.setCurrentIndex(1)
self.comboBox_4.addItems(["item 1", "item 2", "item 3", "item 4", "item 5", ])
# ...
if __name__ == "__main__":
app = QtWidgets.QApplication([])
w = MainApp()
w.show()
sys.exit(app.exec_())



