Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 PyQt5 QWidget未填充父项_Python_Python 2.7_Qt_Pyqt_Pyqt5 - Fatal编程技术网

Python PyQt5 QWidget未填充父项

Python PyQt5 QWidget未填充父项,python,python-2.7,qt,pyqt,pyqt5,Python,Python 2.7,Qt,Pyqt,Pyqt5,我正在PyQt5中创建一个代码编辑器。我正在中心小部件中使用QGridLayout并从那里构建UI。我面临的问题是QPlainTextEdit和菜单没有填满中心小部件上的可用空间。我尝试将大小策略设置为“扩展”,并尝试调整QGridLayout的拉伸参数 我正在Python2.7和Pyqt5中运行代码。使用PyCharm IDE Main.py import os import sys from PyQt5.QtWidgets import QMainWindow, QApplication,

我正在PyQt5中创建一个代码编辑器。我正在中心小部件中使用QGridLayout并从那里构建UI。我面临的问题是QPlainTextEdit和菜单没有填满中心小部件上的可用空间。我尝试将大小策略设置为“扩展”,并尝试调整QGridLayout的拉伸参数

我正在Python2.7和Pyqt5中运行代码。使用PyCharm IDE

Main.py

import os
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction

from PyQt5.QtGui import QIcon

import UI

versao = '3.0.0'


class Principal(QMainWindow):

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

        self.acao_novo = 0
        self.acao_abrir = 0
        self.acao_exemplos = 0
        self.acao_sair = 0
        self.acao_salvar = 0
        self.acao_salvar_como = 0
        self.acao_comentar_linha = 0
        self.acao_achar = 0
        self.acao_achar_e_substituir = 0
        self.acao_ir_para_linha = 0
        self.acao_placa = 0
        self.acao_porta = 0
        self.acao_lingua = 0
        self.acao_monitor_serial = 0
        self.acao_verificar = 0
        self.acao_verificar_e_carregar = 0

        self.init_ui()

    def init_ui(self):

        self.setCentralWidget(UI.Centro())

        self.setGeometry(300, 300, 500, 550)
        self.setWindowTitle('Br.ino ' + versao)
        self.setWindowIcon(QIcon(os.path.join('recursos', 'logo.png')))
        self.show()

def main():
    app = QApplication(sys.argv)
    principal = Principal()
    app.setStyleSheet("""QMainWindow {
                             background: '#252525';
                         }
                         QMenu{
                             background: '#252525';
                         }
                         QMenu::item {
                             background: '#252525';
                         } 
                         QMenu::item:selected{
                             background: '#101010';
                         }
                         QMenuBar {
                             background: '#252525';
                         }
                         QMenuBar::item {
                             background: '#252525';
                         } 
                         QMenuBar::item:selected{
                             background: '#101010';
                         }
                         QPlainTextEdit{
                             background: '#252525';
                             border: None;
                             border-radius: 6px;
                             color: '#efefef';
                             selection-background-color: '#454545';
                         }""")
    sys.exit(app.exec_())


if __name__ == '__main__':
    main() 
UI.py


预期结果如下:此屏幕截图是用Java开发的早期版本,因此它包含一些尚未实现的功能:

不要创建容器小部件,它们是不需要的。将小部件直接添加到布局中

您的问题是,尽管您正在设置布局,但您正在将容器小部件添加到父级,而没有布局,因此容器无法扩展

i、 揭穿

container = QWidget(self)
container.setStyleSheet("background:#252525")
editor = QPlainTextEdit(container)
layout.addWidget(container, 0, 1, 9, 9)

更新:这里是如何做它的菜单


什么是菜单?菜单?可能不相关,但是。。。layout.addWidgetmenu,0,0,1,0指定菜单应跨越零列。能否显示希望获得的内容的图片?菜单是一个类,菜单。菜单是构造函数。实际上,menu占据了第0列。我将尽快添加一张图片。我应该使用menu类吗?如何将父项添加到init?适用于水平扩展,但是,菜单不会垂直扩展查看我的更新答案。如果已将其正确添加到布局中,则应垂直展开。如果您的预期行为是按钮展开以填充可用空间,那么您需要删除QSpacerItem in菜单。还要确保您已经解决了@G.M.在上面指出的问题。
container = QWidget(self)
container.setStyleSheet("background:#252525")
editor = QPlainTextEdit(container)
layout.addWidget(container, 0, 1, 9, 9)
editor = QPlainTextEdit(self)
editor.setStyleSheet("background:#252525")
layout.addWidget(editor, 0, 1, 9, 9)
layout = QVBoxLayout(self)
self.setFixedWidth(60)
self.setStyleSheet("background-color: '#5cb50d';")