私は最近、プログラミングとPython(PyQt)を始めました。私は私のメインのQMainWindow
クラスを持っています。しかし、私はすべてのウィンドウのもの(メニュー、ツールバー、共通ボタン)はQMainWindow
にありますが、すべてのプログラム/ UI固有のウィジェット(pusgbuttons、コンボボックス、画像、チェックボックスなど)は個別のQWidget
にありますクラス。しかし、私はこの権利をしているかどうかはわかりません。PyQt - QMainWindowに別のUIウィジェットを追加する方法
- 私はレイアウトの問題を抱えている - 彼らはマウスでクリックできないですように見えない何かがメニューをカバーしている、私は私が正しく
メインウィンドウに私のUIウィジェットを追加しないと思いますここだ、私はそれを行う方法:
class MyMainWindow(QMainWindow):
def __init__(self, parent = None):
super(MyMainWindow, self).__init__(parent)
self.main_widget = QWidget(self)
...
self.form_widget = FormWidget(self)
#This is my UI widget
self.main_layout = QVBoxLayout(self.main_widget)
self.main_layout.sizeConstraint = QLayout.SetDefaultConstraint
self.main_layout.addWidget(self.form_widget.main_widget)
#form_widget has its own main_widget where I put all other widgets onto
self.main_widget.setLayout(self.main_layout)
self.setCentralWidget(self.main_widget)
- 私は、メインクラスが読めない上にすべてのものを持つ、私はそれを理解するアプリケーションは、(コードの小さなたくさんのファイルに分割されている他のPythonプログラムを見てきましたまたは管理不能)。
コードを小片に分割することについてのご意見はありますか?どのようにしてより良いのですか? UIのために、それはすべて1つの大きな場所にあることができますか? UIコード/クラスを別のファイルに分割する必要がありますか?
ありがとうございます。
self.main_layout.addWidget(self.form_widget)
:私は、UIウィジェットクラスからmain_widgetを削除した(現在はすべてのUIウィジェットはUIクラスウィジェット自体の上に直接配置されている)だけでこれを行う -
は、私は私のミスを見つけた
を[SOLVED]
メニューでこれ以上問題はありません
私は間違いを発見しました。私はUIウィジェットからmain_widgetを削除し、他のすべての小さなウィジェット(ボタン、編集ラインなど)の保持ウィジェットとしてそれ自身を使用し、メインクラスは単純にUIウィジェット(上記参照)をインスタンス化します。 – linuxoid