当前位置: 首页 > 面试题库 >

QWidget :: setLayout:尝试在已经有布局的MainWindow“”上设置QLayout“”

范瀚昂
2023-03-14
问题内容

我正在PyQt4中创建一个应用程序,到目前为止,这是我的代码:

import sys
from PyQt4 import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.initUi()

    def initUi(self):
        self.setWindowTitle('Main Menu')
        self.setFixedSize(1200, 625)
        self.firstWidgets()
        self.show()

    def firstWidgets(self):
        self.vbox1 = QtGui.QVBoxLayout()
        self.task1 = QtGui.QLabel('Check 1', self)
        self.task1CB = QtGui.QCheckBox(self)
        self.hbox1 = QtGui.QHBoxLayout()
        self.hbox1.addWidget(self.task1)
        self.hbox1.addWidget(self.task1CB)
        self.vbox1.addLayout(self.hbox1)

        self.setLayout(self.vbox1)


def main():
    application = QtGui.QApplication(sys.argv)
    gui = MainWindow()
    sys.exit(application.exec_())

if __name__=='__main__':
    main()

我的问题在MainWindow.firstWidgets()。我尝试设置布局,但是即使这是我第一次使用.setLayout该表格,也会出现错误,这使我感到困惑。

QWidget :: setLayout:尝试在MainWindow“”上设置QLayout“”,该窗口已经具有布局


问题答案:

您不能QLayout直接在上设置QMainWindow。您需要创建一个QWidget并将其设置为上的 中央窗口小部件
QMainWindow然后将其分配给该 窗口小部件QLayout

wid = QtGui.QWidget(self)
self.setCentralWidget(wid)
layout = QtGui.QVBoxLayout()
wid.setLayout(layout)


 类似资料:
  • 问题内容: 我使用答案中的代码并进行了一些更改。因为我的代码必须读取一些文件并从这些文件中获取选项卡的名称,所以我在代码中添加了一个for循环。这是我的代码。 它确实显示了我的标签。但是,我遇到了一个警告: QLayout:尝试将QLayout“”添加到已经具有布局的QWidget“”中 由于此选项卡代码只是整个代码的一部分,因此该问题将阻止数据流。而且我不知道这是怎么回事。我搜索了答案,但其他答

  • 问题内容: 我有一个小部件,当切换选项时,它会改变。这会使所有布局和小部件失效。我保留所有布局的列表,因此可以使用类似于以下答案的方法删除它们: 如何摆脱旧的布局并设置新的布局? 该文档非常简洁,显然不适用于python: QWidget.setLayout(self,QLayout) QLayout参数将其所有权转移到Qt。 将此窗口小部件的布局管理器设置为布局。 如果此小部件上已经安装了布局管

  • 我试图创建一个假想的车辆,有自动和手动模式的用户界面。当用户将车辆设置为其中一种模式时,它应该只显示与该模式相关的控件,我已经使用CardLayout完成了这一点。 然而,我也希望能够为每张卡片手动指定布局中各种元素的位置——对于静态布局,我会按照,但在CardLayout上使用时,这只会给出一个空白窗口(因此下面代码中有两行注释掉)。 我如何实现这两个目标?我目前的代码如下:

  • 问题内容: 以下代码中的行无效。为什么?我该如何解决? 问题答案: 您需要调用小部件。默认情况下,a不会填充背景。 有关更多信息,请参见该属性的文档。 如果要使用任意背景色,则需要修改小部件的调色板:

  • 请让我知道如何解决这个问题。

  • 我是个彻头彻尾的傻瓜。我正在尝试设置一个Redis连接,并能够使用c方法将密钥设置到Redis中。c代码很长,所以我只包括相关部分:网页。H 网页。cpp 编译错误 我使用的c Redis库是https://github.com/brianwatling/redispp 注意***我尝试使用Redisp命名空间,比如在这个例子中,但是连接类会与其他类冲突。https://github.com/br