Нужна помощь с `PySide2`!
После компиляции из .ui в .py открываю уже .py файл в sublime text и там нету части кода которая мне нужна. Пытался вводить в ручную:
import sys
from PySide2 import QtCore, QtGui, QtWidgets
from main import Ui_Dialog
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
Но не работало даже пробовал двумя методами из двух разных видео на ютубе, где во втором случае нужно вместо dialog ставить Form. Что мне делать с этим? Помогите!
Часть кода которого нету:
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())
Компилирую командой через консоль:
pyside2-uic "D:\python projects\.ui Files\gg.ui" -o "D:\python projects\.py Files\test.py"
.ui файл:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>381</width>
<height>533</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="styleSheet">
<string notr="true">QWidget {
background-color: #303030;
}
QPushButton {
color: #08c7ba;
background-color: #7f1c1c;
width: 90px;
height: 60px;
font-size: 13px;
font-weight: 900;
border-style: groove;
border-width: 5px;
border-color: #0f0e0e;
}
QPushButton:hover {
border-color: #03cc00;
border-style: outset;
}
QPushButton:pressed {
background-color: #25b522;
border-color: #196318;
border-style: inset;
}</string>
</property>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>190</y>
<width>381</width>
<height>351</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="2">
<widget class="QPushButton" name="pushButton_9">
<property name="text">
<string>Nothing</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>BuildingTypes</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PvpBoosts</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pushButton_4">
<property name="enabled">
<bool>true</bool>
</property>
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="text">
<string>ClicksImitation</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>AutoThings</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="pushButton_8">
<property name="text">
<string>Nothing</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QPushButton" name="pushButton_10">
<property name="text">
<string>CloseProgramm</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Nothing</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="pushButton_7">
<property name="text">
<string>Nothing</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>SpinBots</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>0</x>
<y>50</y>
<width>381</width>
<height>151</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color: #ba36cf;
font-size: 20px;
font-weight: 900;
</string>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>381</width>
<height>41</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: #4a4a4a;
color: #e84848;
font-size: 16px;
font-weight: 900;
border: outset;</string>
</property>
<property name="html">
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:16px; font-weight:792; font-style:normal;">
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
Ответы (2 шт):
Вам не нужна эта часть кода. Скомпилировали и забудьте про него.
Далее пишите свое приложение, в котором импортируете модуль созданный в дизайнере и скомпилированный from main import Ui_Dialog
Создаете класс куда закачиваете свой дизайн, примерно так:
import sys
from PySide2 import QtCore, QtGui, QtWidgets
from main import Ui_Dialog
class Dialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super().__init__()
self.setupUi(self)
# тут ваша логика...
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = Dialog()
w.show()
sys.exit(app.exec_())
Все, запускайте свое приложение. Запускать приложение надо в CMD/терминале.
Update
Попробуйте кликать по кнопкам.
import sys
from PySide2 import QtCore, QtGui, QtWidgets
from main import Ui_Dialog
class Dialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super().__init__()
self.setupUi(self)
self.textEdit.setPlainText("Hello World")
self.pushButton.clicked.connect(self.onClicked)
self.pushButton_2.clicked.connect(self.onClicked)
self.pushButton_3.clicked.connect(self.onClicked)
self.pushButton_4.clicked.connect(self.onClicked)
self.pushButton_5.clicked.connect(self.onClicked)
self.pushButton_6.clicked.connect(self.onClicked)
self.pushButton_7.clicked.connect(self.onClicked)
self.pushButton_8.clicked.connect(self.onClicked)
self.pushButton_9.clicked.connect(self.onClicked)
self.pushButton_10.clicked.connect(self.onClicked)
def onClicked(self):
sender = self.sender()
self.textEdit.setPlainText(sender.text())
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = Dialog()
w.show()
sys.exit(app.exec_())
Если я правильно понял вопрос, то решением будет для вас ключ -x (pyuic5 -x test.ui -o test.py)
