ステータスバーと他のウィジェットを含むメニューバーをウィンドウに持つPyQtアプリケーションを作成しようとしています。以下はクラスQtGui.QMainWindow
メソッドで実行するためのコードです。しかし、私はさらなる機能を追加しようとすると、代わりにQtGui.QWidget
を使用する必要があります実現する。ここでステータスバーとメニューバーを持つPyQt
はコードです:
import sys
from PyQt4 import QtGui, QtCore
### How can I use QtGui.QWidget here??? ###
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
self.setToolTip('This is a <b>QWidget</b> Window widget')
exitAction = QtGui.QAction(QtGui.QIcon('exit-icon-2.png'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit/Terminate application')
exitAction.triggered.connect(QtGui.qApp.quit)
self.statusBar()
menubar = self.menuBar()
menubar.setToolTip('This is a <b>QWidget</b> for MenuBar')
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAction)
toolbar = self.addToolBar('Exit')
toolbar.addAction(exitAction)
qbtn = QtGui.QPushButton('Quit', self)
qbtn.setToolTip('This is a <b>QPushButton</b> widget')
qbtn.clicked.connect(self.launchAAA)
qbtn.resize(qbtn.sizeHint())
qbtn.move(170, 190)
self.setGeometry(500, 180, 400, 400)
self.setWindowTitle('Quit button with Message')
self.show()
def launchAAA(self, event):
reply = QtGui.QMessageBox.question(self, 'Message',
"Are you sure to quit?", QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
QtGui.QApplication.quit()
else:
pass
def main():
app = QtGui.QApplication(sys.argv)
ex=Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
私はメニューバーとタイトルバーがQWidgetのメソッドを使用して作成することができるという印象の下にいますが、ここでは動作しません。私はQtGui.QLCDNumber
を使ってアプリケーションにLCD機能を追加しようと考えています。
上記の問題を解決する方法に関する提案。ありがとう
@Mailerdaimon QWidgetには、後で必要となるLCDディスプレイ、vbox、hboxなどの機能がありますか?私はあなたの質問に混乱していると感じます、もっと教えてください。 – SamAct
通常の方法は、QMainWindowを作成し、 'QMainWindow :: setCentralWidget(QWidget * widget)'を使用してこのウィンドウの中央QWidgetを設定することです。 Plus:QMainWindowはQWidgetから継承されています。つまり、QWidgetにはさらに多くの機能があります。 – Mailerdaimon
@Mailerdaimon QMainWindowはQWidgetの継承されたすべての機能を持っていますので、それを使用しても問題ありません。中央のQWidgetを設定すると問題が解決するはずですが、上記のコードに変更があった場合は私を案内してくれますか? – SamAct