私はGUI開発が初めてで、pyqt5
をPythonで使用する方法を学びたいと考えています。 以下は、私が取り組んでいるサンプルコードです。ウィンドウの右側にチェックボックス、コンボボックス、ラジオボタンがあるウィンドウが必要です。 QtWidget
オブジェクトの詳細はコード内にあります。ウィジェットの位置とウィンドウのサイズ
from PyQt5.QtWidgets import QApplication, QMainWindow, QSizePolicy, QWidget, QPushButton, QComboBox, QRadioButton, QVBoxLayout, QCheckBox
from PyQt5.QtGui import QIcon
class App(QMainWindow):
def __init__(self):
super().__init__()
self.left = 0
self.top = 500
self.title = 'Chip2 Torque Data'
self.width = 500
self.height =500
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
xselect=QRadioButton("X",self)
xselect.setChecked(True)
xselect.move(340,400)
zselect=QRadioButton("Z",self)
zselect.move(380,400)
sselect=QRadioButton("SP1",self)
sselect.move(420,400)
pass_list=QComboBox(self)
pass_list.addItems(sheets_idealcut)
pass_list.move(340,300)
rawdata_check=QCheckBox("Raw Data",self)
rawdata_check.setChecked(True)
rawdata_check.move(340,200)
mvgavg_check=QCheckBox("Moving average",self)
mvgavg_check.setChecked(True)
mvgavg_check.move(380,200)
mvgstd_check=QCheckBox("Moving stdev",self)
mvgstd_check.setChecked(True)
mvgstd_check.move(420,200)
self.show()
if __name__ == '__main__':
sheets_idealcut=['pass2','pass3','pass4','pass5']
app = QApplication.instance()
if app is None:
app = QApplication(sys.argv)
else:
print('QApplication instance already exists: %s' % str(app))
ex = App()
#ex.show()
app.exec_()
以下はコードの出力です。 (重複チェックボックス名を無視してください。私は後でそれを修正しようとする。)
私の問題は、私はこのウィンドウを最大化するとき、QtWidget
オブジェクト(QComboBox
、QRadioButton
、QCheckBox
が)自分の位置を再調整していないです新しいウィンドウサイズで
したがって、自動的にウィジェットの位置を変更するには、どの方法を使用する必要がありますか?
私はそれを見つけましたが、何か役に立つものが見つかりませんでした。
助けてください。
あなたは[レイアウト]にウィジェットを追加する必要があります(https://doc.qt.io/qt-5/layout.html ) – user3419537
私はレイアウトについて知っていましたが、レイアウトがウィンドウの右側になるようにQMainwindow内のレイアウトの位置を調整する方法を理解できませんでした。 – Kanmani