gpt4 book ai didi

python - PyQt 主窗口与对话框

转载 作者:行者123 更新时间:2023-11-28 17:28:13 24 4
gpt4 key购买 nike

可能是一个愚蠢的菜鸟问题,但这里是(浓缩示例):

我有一些创建 QDialog 的基本代码。在实践中,这运行良好,我有一些东西可以创建 Pyqtgraph 窗口、加载和绘制数据等:

import sys
from PyQt4 import QtGui

#class Window(QtGui.QMainWindow):
class Window(QtGui.QDialog):

def __init__(self):
super(Window, self).__init__()

# Button to load data
self.LoadButton = QtGui.QPushButton('Load Data')
# Button connected to `plot` method
self.PlotButton = QtGui.QPushButton('Plot')

# set the layout
layout = QtGui.QVBoxLayout()
layout.addWidget(self.LoadButton)
layout.addWidget(self.PlotButton)

self.setLayout(layout)

self.setGeometry(100,100,500,300)
self.setWindowTitle("UI Testing")


if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)

main = Window()
main.show()

sys.exit(app.exec_())

但是我想将它创建为 QMainWindow(现在只是为了获得最大化、关闭等按钮)但是如果我将类定义更改为:

class Window(QtGui.QMainWindow):

当我运行代码时,我得到一个空白的主窗口。所以简单的问题是,我需要做什么才能像在 QMainWindow 中的 QDialog 中那样显示布局?

最好的问候,

最佳答案

来自doc :

Note: Creating a main window without a central widget is not supported. You must have a central widget even if it is just a placeholder.

因此应该创建和设置中央小部件:

    def __init__(self):
super(Window, self).__init__()

# Button to load data
self.LoadButton = QtGui.QPushButton('Load Data')
# Button connected to `plot` method
self.PlotButton = QtGui.QPushButton('Plot')

# set the layout
layout = QtGui.QVBoxLayout()
layout.addWidget(self.LoadButton)
layout.addWidget(self.PlotButton)

# setup the central widget
centralWidget = QtGui.QWidget(self)
self.setCentralWidget(centralWidget)
centralWidget.setLayout(layout)

self.setGeometry(100,100,500,300)
self.setWindowTitle("UI Testing")

关于python - PyQt 主窗口与对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36844898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com