Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 有没有办法将定制的QGroupBox添加到任何小部件/布局中?_Python 3.x_User Interface_Pyqt5_Qt5 - Fatal编程技术网

Python 3.x 有没有办法将定制的QGroupBox添加到任何小部件/布局中?

Python 3.x 有没有办法将定制的QGroupBox添加到任何小部件/布局中?,python-3.x,user-interface,pyqt5,qt5,Python 3.x,User Interface,Pyqt5,Qt5,我已经通过Qt设计器创建了一个QMainWindow和一个定制的QGroupBox,并编译成.py文件 这是我的小部件层次结构:QMainWindow->QStackedWidget->QScrollArea->QVBoxLayout->QGroupBox(es) 但是,当我试图将上面创建的定制QGroupBox(classUi_deck)添加到QVBoxLayout(属于classUi_main)时,它没有显示任何内容 这是我的代码: #main.py import sys from PyQt

我已经通过Qt设计器创建了一个QMainWindow和一个定制的QGroupBox,并编译成.py文件

这是我的小部件层次结构:
QMainWindow->QStackedWidget->QScrollArea->QVBoxLayout->QGroupBox(es)
但是,当我试图将上面创建的定制QGroupBox(class
Ui_deck
)添加到QVBoxLayout(属于class
Ui_main
)时,它没有显示任何内容
这是我的代码:

#main.py
import sys
from PyQt5 import QtCore, QtWidgets, QtGui

from main_ui import Ui_main
from deck_name import Ui_deck 

class Main(QtWidgets.QMainWindow, Ui_main):
    def __init__(self):
    super().__init__()
    self.setupUi(self)
    groupbox = QtWidgets.QGroupBox(self.scroll_widget)
    deck = Ui_deck()
    deck.setupUi(groupbox)
    self.scroll_layout.addWidget(groupbox)



if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    main = QtWidgets.QMainWindow()
    ui = Main()
    ui.setupUi(main)
    main.show()
    sys.exit(app.exec_())


以下是输出:


它应该在窗口中有两个分组框

您显示的是
QtWidgets.QMainWindow
的实例,而不是
Main
。尝试将
main.py
的最后一部分更改为

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())
#deck_name.py
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'deck_name.ui'
#
# Created by: PyQt5 UI code generator 5.15.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_deck(object):
    def setupUi(self, deck):
        deck.setObjectName("deck")
        deck.resize(565, 200)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(deck.sizePolicy().hasHeightForWidth())
        deck.setSizePolicy(sizePolicy)
        deck.setMinimumSize(QtCore.QSize(0, 200))
        deck.setWindowTitle("")
        self.gridLayoutWidget = QtWidgets.QWidget(deck)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 561, 201))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.deck_name = QtWidgets.QLabel(self.gridLayoutWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.deck_name.sizePolicy().hasHeightForWidth())
        self.deck_name.setSizePolicy(sizePolicy)
        self.deck_name.setMinimumSize(QtCore.QSize(0, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(13)
        self.deck_name.setFont(font)
        self.deck_name.setObjectName("deck_name")
        self.gridLayout.addWidget(self.deck_name, 0, 0, 1, 1)
        self.button = QtWidgets.QFrame(self.gridLayoutWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.button.sizePolicy().hasHeightForWidth())
        self.button.setSizePolicy(sizePolicy)
        self.button.setMinimumSize(QtCore.QSize(0, 30))
        self.button.setMaximumSize(QtCore.QSize(16777215, 50))
        font = QtGui.QFont()
        font.setFamily("Arial")
        self.button.setFont(font)
        self.button.setStyleSheet("QPushButton{\n"
"    border-radius: 12px;\n"
"}")
        self.button.setObjectName("button")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.button)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.review = QtWidgets.QPushButton(self.button)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.review.sizePolicy().hasHeightForWidth())
        self.review.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.review.setFont(font)
        self.review.setStyleSheet("QPushButton#review{\n"
"    background-color: rgb(132, 255, 16);\n"
"}\n"
"\n"
"QPushButton#review:hover{\n"
"    background-color: rgb(125, 234, 0)\n"
"}\n"
"")
        self.review.setObjectName("review")
        self.horizontalLayout.addWidget(self.review)
        self.flash = QtWidgets.QPushButton(self.button)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.flash.sizePolicy().hasHeightForWidth())
        self.flash.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.flash.setFont(font)
        self.flash.setStyleSheet("QPushButton#flash{\n"
"    background-color:rgb(132, 255, 16);\n"
"}\n"
"\n"
"QPushButton#flash:hover{\n"
"    background-color: rgb(125, 234, 0)\n"
"}\n"
"")
        self.flash.setObjectName("flash")
        self.horizontalLayout.addWidget(self.flash)
        self.word_list = QtWidgets.QPushButton(self.button)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.word_list.sizePolicy().hasHeightForWidth())
        self.word_list.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.word_list.setFont(font)
        self.word_list.setStyleSheet("QPushButton#word_list{\n"
"    background-color:rgb(132, 255, 16);\n"
"}\n"
"\n"
"QPushButton#word_list:hover{\n"
"    background-color: rgb(125, 234, 0)\n"
"}\n"
"")
        self.word_list.setObjectName("word_list")
        self.horizontalLayout.addWidget(self.word_list)
        self.gridLayout.addWidget(self.button, 1, 0, 1, 1)
        self.dropdown = QtWidgets.QToolButton(self.gridLayoutWidget)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.dropdown.setFont(font)
        self.dropdown.setStyleSheet("border: none")
        self.dropdown.setObjectName("dropdown")
        self.gridLayout.addWidget(self.dropdown, 0, 1, 1, 1)

        self.retranslateUi(deck)
        QtCore.QMetaObject.connectSlotsByName(deck)

    def retranslateUi(self, deck):
        _translate = QtCore.QCoreApplication.translate
        self.deck_name.setText(_translate("deck", "Deck_name"))
        self.review.setText(_translate("deck", "Review"))
        self.flash.setText(_translate("deck", "Flashcards mode"))
        self.word_list.setText(_translate("deck", "Word list mode"))
        self.dropdown.setText(_translate("deck", "..."))
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())