Я новичок в pyqt5, поэтому у меня возникли проблемы с изменением размера встроенного терминала urxvt-unicode, который я интегрировал в мое приложение basi c.
Я пытался использовать макеты, но результат net остается тем же, что терминал не будет масштабироваться с основным окном или изменять его размер, если я отрегулирую размер главного окна.
вот мой код
from PyQt5 import QtCore, QtGui, QtWidgets
import os
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self._process = []
MainWindow.setObjectName("MainWindow")
MainWindow.resize(502, 356)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout_3.setContentsMargins(1, 1, 4, 0)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.frame = QtWidgets.QFrame(self.centralwidget)
self.frame.setGeometry(QtCore.QRect(30, 20, 451, 281))
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
self.verticalLayout_5 = QtWidgets.QHBoxLayout(self.frame)
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_5.setSpacing(0)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.start_process('urxvt',['-embed', str(int(self.frame.winId())),"-e","tmux"])
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
def start_process(self, prog, options):
process = QtCore.QProcess()
self._process.append(process)
process.start(prog, options)
def run_Command(self, command = "ls"):
program = "tmux"
options = []
options.extend(["send-keys"])
options.extend([command])
options.extend(["Enter"])
self.start_process(program, options)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
app.exec_()
os.system("pkill -f tmux")
sys.exit()