QMainWindowクラスにQPushButtonを適切に配置できないものがありますか?QTextEdit、QPushButtonの問題QMainWindowとQWidgetとの関係
QPushButton「Quit」は間違った場所にあり、通常よりも少し大きすぎます。
私のコード私はQWidgetからクラスを継承を作る代わりにQMainWindowプッシュボタンが適切に配置されますが、私は継承した場合、私はいくつかの他の機能を使用できない場合
import sys
from PyQt5.QtWidgets import (QApplication , QPushButton, QToolTip, QMessageBox, QMainWindow, QAction,
QHBoxLayout, QVBoxLayout, QWidget, QTextEdit)
from PyQt5.QtGui import QIcon, QFont
class QQtWidget(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn = QPushButton("Quit", self)
btn.clicked.connect(self.close)
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(btn)
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
self.setLayout(vbox)
self.setGeometry(500, 500, 300, 150)
self.setWindowTitle("PyQt Test")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
f = DemoQt()
sys.exit(app.exec())
ですQWidget。
もう1つの問題は、QTextEditモジュールです。私がここに
class OpenSavePath(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.textEdit = QTextEdit()
"I realise here that this might be the problem as there is no
setCentralWidget() module in QWidget"""
#self.setCentralWidget(self.textEdit)
save_btn = QPushButton("Save", self)
save_btn.clicked.connect(self.saveCSV)
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(save_btn)
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
self.setGeometry(300, 300, 300, 250)
self.setWindowTitle("Rocket Packet Preview")
お知らせも見当違いであるのQPushButtonこのコードを使用する場合、私はそれで
何かを編集することはできませんようです。 QMainWindowを持つ親クラスのQWidgetを変更すると、この次の行を追加することで
self.setCentralWidget(self.textEdit)
テキストエディタの問題がなくなっていると私は編集することができます。しかし、私のQPushButtonが表示されます。これを解決するにはどうにかしていますか?
すごいです!助けてくれてありがとう。また、私はあなたが時々たとえば ための自己 'VBOXは= QVboxLayout(自己)' を追加する理由として興味があります。しかしにおける「ウィジェット」で何も ' 'のhbox = QHLayout() に自己を含んでいませんでした'スーパー(ウィジェット、自己)'? – Hawoona
'layout = {レイアウトクラス}({親})'は '{親} .setLayout(レイアウト) 'に似ています – eyllanesc
あなたが継承するとき、あなたは父親が何をしているのかを初期化する必要があります。 – eyllanesc