Qt デザイナー UI を再設計するときにカスタム コードの損失を防ぐにはどうすればよいですか?
Qt デザイナー UI の再設計で失われた変更を解決する
Qt デザイナーを利用して Python のグラフィカル ユーザー インターフェイス (GUI) を設計する場合、変更というイライラする問題が発生する可能性があります。生成された Python コードに加えられた内容は、UI が再設計されると失われます。これは、特に特定の機能のコードをカスタマイズするのに多大な労力を費やした場合に、非常に不便になる可能性があります。
デザインとロジックの分離
この問題を解決する鍵は、デザインとロジックを分離することにあります。 UI の機能を処理するコードからの UI デザイン。生成された Python コードを直接変更する代わりに、デザインを使用するがロジックを個別に処理する新しいクラスを作成します。
実装例
Qt の MainWindow テンプレートを使用した次の例を考えてみましょう。デザイナー:
Ui_MainWindow.py
from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): [...] def retranslateUi(self, MainWindow): [...]
logic.py
from Ui_MainWindow import Ui_MainWindow class Logic(QMainWindow, Ui_MainWindow): def __init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) self.setupUi(self)
このアプローチを採用すると、 Qt Designer のコードに影響を与えることなく、デザインを変更できます。 logic.py.
設計クラスの選択
PyQtClass の選択は、選択した設計テンプレートによって異なります。
Template | PyQtClass |
---|---|
Main Window | QMainWindow |
Widget | QWidget |
Dialog with Buttons Bottom | QDialog |
Dialog with Buttons Right | QDialog |
Dialog with Without Buttons | QDialog |
追加機能
この実装ウィンドウを閉じるイベントの処理など、ロジック クラス内での高度なロジックの実装が可能になります。以下に例を示します:
class Logic(QMainWindow, Ui_MainWindow): def __init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) self.setupUi(self) def closeEvent(self, event): answer = QtWidgets.QMessageBox.question( self, 'Are you sure you want to quit ?', 'Task is in progress !', QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No) if answer == QtWidgets.QMessageBox.Yes: event.accept() else: event.ignore()
以上がQt デザイナー UI を再設計するときにカスタム コードの損失を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
