私はQtDesingerを使用しています。QtDesingerを使用しています.QtDesingerでデザインしたいGUIをデザインした後、Pythonコードに変換してから、私のPythonコードが、私はQtDesignerでUIを変更し、再びPythonコードに変換する場合、私は自分のコード上で私の以前の変更を失った。 問題を解決するにはどうすればよいですか? 他のファイルにコードを書き込むために、Pythonで複数のファイルにまたがるクラスを広げることはできますか?PyQt5 Qtデザイナーの変更は再設計後に失われるユーザーインターフェイス
0
A
答えて
3
これらの問題を避けるために、このファイルを変更するのではなく、そのデザインを使用するクラスを実装する新しいファイルを作成することをお勧めします。例えば
、次の構造に似Ui_Design.py
に変換し、その後、あなたはdesign.ui
ファイルにMainWindow
テンプレートを使用していたとします
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
[...]
def retranslateUi(self, MainWindow):
[...]
その後、我々は我々がlogic.py
どこを呼び出します新しいファイルを作成します。
class Logic(QMainWindow, Ui_MainWindow):
def __init__(self, *args, **kwargs):
QMainWindow.__init__(self, *args, **kwargs)
self.setupUi(self)
ですから、デザインを変更し、再度ファイルを生成する場合でも、変更する必要はありませんの.py:我々はロジックを処理し、それは以前のデザインを使用してファイルを作成します。ロジックのファイル
我々は次のルールを持っている必要がありますアイデアを一般化するのではなく、このための論理クラスには、次の構造を持っている必要があります。
class Logic(PyQtClass, DesignClass):
def __init__(self, *args, **kwargs):
PyQtClass.__init__(self, *args, **kwargs)
self.setupUi(self)
- PyQtClassを:このクラスは、選択したデザインに依存します。
Template PyQtClass
─────────────────────────────────────────────
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog
- DesignClass:あなたのデザインに表示されるクラスの名前。
0
最も簡単な方法は、* .uiファイルをPythonコードで直接使用することです.Uiを変更するたびに* .pyファイルに変換する必要はありません。 この疑似コードはプロジェクトで使用できます。
# imports
from PyQt5 import uic
# load ui file
baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui)
# use loaded ui file in the logic class
class Logic(baseUIWidget, baseUIClass):
def __init__(self, parent=None):
super(Logic, self).__init__(parent)
self.setupUi(self)
.
.
.
.
def main():
app = QtWidgets.QApplication(sys.argv)
ui = Logic(None)
ui.showMaximized()
sys.exit(app.exec_())
関連する問題
- 1. Pyqt5デザイナー - ウィジェット
- 2. Pyqt5デザイナーとPython 3.5
- 3. 設定変更後に変数への参照が失われました
- 4. アプリケーションの再起動時にデータストアの変更が失われる
- 5. Eclipselink:データベースへの再接続後、エンティティPrePersist/PreUpdateへの変更が失われる
- 6. QT QMLリソースファイルが変更後に再コンパイルされない
- 7. ビルド後にローカルデータベースの変更が失われる
- 8. 別のウィンドウに変更した後、カスタムNSCursorが失われる
- 9. Androidのユーザーインターフェイスの設計について
- 10. 更新または再起動後にフィードがすべて失われる
- 11. QTデザイナーが、私はQtのデザイナー4をインストールし
- 12. 作成後のデータベース設計の変更
- 13. QTデザイナーやクリエイター
- 14. Qtデザイナー:カスタムアクションのカスタムコード
- 15. スタンドアロンQtデザイナーのインストール
- 16. 再描画後にMatplotlib 3Dスキャターの色が失われる
- 17. アンドロイドサービスの再起動後に静的データが失われる
- 18. 再起動後にEclipseのワークスペースでプロジェクトが失われる
- 19. 再起動後にActiveMQ 5.13.2のメッセージが失われる
- 20. 再ホストされたデザイナーで設計されたワークフローを保存WF 4.0
- 21. Qtデザイナー - QDialogを作成するには?
- 22. JBoss AS7 JNDIデータソースが再発行後に失われる
- 23. 再起動後に通知データが失われる
- 24. 再起動後にUSB共有が失われる
- 25. Softlayer Java:OS再ロード後にカスタムパーティションが失われる
- 26. Visual Studioでunshelve後に保留中の変更が失われる
- 27. 棚の変更が失われた
- 28. Androidアプリケーションアプリケーションの設定が変更されるとデータが失われる
- 29. Qtデザイナーのラベルのメニューアイコン
- 30. 設計更新後のデータマイグレーション
使用方法を示す例についてはPyQt5ドキュメントに(http://pyqt.sourceforge.net/Docs/PyQt5/designer.html#using-the-generated-code)[のQt Designerを使用]を参照してくださいpyuicによって生成されたコード。 – ekhumoro