переместить положение GroupBox без меню и инструментов в PyQt5 - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу переместить позицию groupbox в окне, но menubar и tools также перемещены.

как мне это исправить и просто переместить положение GroupBox? (Команда move не работает)

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        V = QtWidgets.QApplication.desktop().screenGeometry()
        h, w, x, y = V.height(), V.width(), 1000, 600
        self.setGeometry(h/4, w/20, x, y)
        self.setFixedSize(x, y)
        self.setWindowTitle('Main Window')
        OpenFile = QtWidgets.QAction('Open', self)
        OpenFile.setShortcut('Ctrl+O')
        OpenFile.setStatusTip('Open Restore File...')
        self.statusBar()
        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu('File')
        fileMenu.addAction(OpenFile)
        self.home()
    def home(self):
        self.tools_in_home()
        self.show()
    def tools_in_home(self):
        self.groupBox = QtWidgets.QGroupBox('Test')
        self.groupBox.setFixedSize(800, 400)
        self.setContentsMargins(100, 100, 100, 100) # <=== HERE
        hBoxLayout = QtWidgets.QHBoxLayout()
        self.groupBox.setLayout(hBoxLayout)
        self.setCentralWidget(self.groupBox)
def run():
    app = QtWidgets.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())
if __name__ == '__main__':
    run()

1 Ответ

0 голосов
/ 03 апреля 2019

Попробуйте:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        V = QtWidgets.QApplication.desktop().screenGeometry()
        h, w, x, y = V.height(), V.width(), 1000, 600
        self.setGeometry(h/4, w/20, x, y)
        self.setFixedSize(x, y)

# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
        centralWidget = QtWidgets.QWidget()
        self.setCentralWidget(centralWidget)
        self.grid = QtWidgets.QGridLayout(centralWidget)
        left, top, right, bottom = 100, 100, 100, 100
        centralWidget.setContentsMargins(left, top, right, bottom)        
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        

        OpenFile = QtWidgets.QAction('Open', self)
        OpenFile.setShortcut('Ctrl+O')
        OpenFile.setStatusTip('Open Restore File...')
        self.statusBar()
        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu('File')
        fileMenu.addAction(OpenFile)
        self.home()

    def home(self):
        self.tools_in_home()
        self.show()

    def tools_in_home(self):
        self.groupBox = QtWidgets.QGroupBox('Test') 
        self.groupBox.setFixedSize(800, 400)
        self.grid.addWidget(self.groupBox)


def run():
    app = QtWidgets.QApplication(sys.argv)
    GUI = Window()
    GUI.setWindowTitle('Main Window')
    sys.exit(app.exec_())

if __name__ == '__main__':
    run()       

enter image description here


Обновление

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Window(QtWidgets.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        V = QtWidgets.QApplication.desktop().screenGeometry()
        h, w, x, y = V.height(), V.width(), 1000, 670            # 600
        self.setGeometry(h/4, w/20, x, y)
        self.setFixedSize(x, y)

# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
        centralWidget = QtWidgets.QWidget()
        self.setCentralWidget(centralWidget)
        self.grid = QtWidgets.QGridLayout(centralWidget)
        left, top, right, bottom = 50, 50, 50, 50
        centralWidget.setContentsMargins(left, top, right, bottom)        
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        

        OpenFile = QtWidgets.QAction('Open', self)
        OpenFile.setShortcut('Ctrl+O')
        OpenFile.setStatusTip('Open Restore File...')
        self.statusBar()
        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu('File')
        fileMenu.addAction(OpenFile)
        self.home()

    def home(self):
        self.tools_in_home()
        self.show()

    def tools_in_home(self):
        self.groupBox = QtWidgets.QGroupBox('Test') 
        self.groupBox.setFixedSize(400, 200)            #(800, 400)
        self.grid.addWidget(self.groupBox, 0, 0)

# +++ vvvvv        
        self.groupBox1 = QtWidgets.QGroupBox('Test 1')
        self.groupBox1.setFixedSize(400, 100)
        self.groupBox2 = QtWidgets.QGroupBox('Test 2')
        self.groupBox2.setFixedSize(400, 100)
        self.groupBox3 = QtWidgets.QGroupBox('Test 3')
        self.groupBox3.setFixedSize(400, 200)
        self.grid.addWidget(self.groupBox1, 1, 0)
        self.grid.addWidget(self.groupBox2, 1, 1)
        self.grid.addWidget(self.groupBox3, 2, 1)
# +++ ^^^^^


def run():
    app = QtWidgets.QApplication(sys.argv)
    GUI = Window()
    GUI.setWindowTitle('Main Window')
    sys.exit(app.exec_())

if __name__ == '__main__':
    run()       

enter image description here

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