Как автоматически изменить размер встроенного QWidget - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь установить правило автоматического изменения размера в QVBoxLayout, в которое я встроил терминал оболочки urxvt.Это встроенный виджет для большого проекта.

Подробнее см. На экране печати. ​​enter image description here

проект находится здесь: https://github.com/3fon3fonov/trifon

Как видите, виджет статичен, хотя я хочу автоматически изменять его размер при изменении размера вкладки «bash shell».

Я использую код "Terminal.py" (честно говоря, я не помню, откуда я взял этот код, но определенно из stackoverflow):

import sys
from PyQt5 import QtCore, QtWidgets
import subprocess
import os


class EmbTerminal(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(EmbTerminal, self).__init__(parent)
        self.process = QtCore.QProcess(self)
        self.terminal = QtWidgets.QWidget(self)
        layout = QtWidgets.QVBoxLayout(self)
        layout.addWidget(self.terminal)
        # Works also with urxvt:
        if subprocess.call(["which", 'urxvt'], stdout=open(os.devnull, 'wb')) == 1:
            self.process.start('xterm',['-into', str(int(self.winId()))])
        else:
            self.process.start('urxvt',['-embed', str(int(self.winId()))])
        #self.setFixedSize(450, 390)


class mainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(mainWindow, self).__init__(parent)

        central_widget = QtWidgets.QWidget()
        lay = QtWidgets.QVBoxLayout(central_widget)
        self.setCentralWidget(central_widget)

        tab_widget = QtWidgets.QTabWidget()
        lay.addWidget(tab_widget)

        tab_widget.addTab(EmbTerminal(), "EmbTerminal")
        tab_widget.addTab(QtWidgets.QTextEdit(), "QTextEdit")
        tab_widget.addTab(QtWidgets.QMdiArea(), "QMdiArea")


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main = mainWindow()
    main.show()
    sys.exit(app.exec_())

Fromкоторый я называю только EmbTerminal (), т.е.

import terminal 
...

self.terminal_embeded.addTab(terminal.EmbTerminal(), "Bash shell")  

Любые идеи приветствуются!

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...