Проблемы с размещением группового окна в gridlayout в формате nxn - PullRequest
0 голосов
/ 19 июня 2020

У меня проблема с проектом, над которым я работаю. На самом деле это система управления школой. В основном я хочу создать фрейм, который отображает групповое поле, возможно, в 3 столбца и n строк, в зависимости от длины данных из базы данных. Мне удалось создать его, но у меня возникла проблема с изменением размера фрейма для правильного отображения группового окна, а также с удалением группового окна. Я буду признателен за простой образец.

1 Ответ

0 голосов
/ 25 июня 2020

Спасибо, ребята, я смог обойти это.

from PyQt5.QtWidgets import *
from PyQt5.Qt import *
import sys

class Window(QMainWindow):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs) 
         
        self.create_gui()
        self.create_boxes()
    
    def create_gui(self):
    
        self.setGeometry(0, 0, 920, 560)
    
        self.centralwidget = QWidget(self)
        self.centralwidget_layout = QGridLayout(self.centralwidget)
    
        self.staff_scroll = QScrollArea(self.centralwidget)
        self.staff_scroll.setWidgetResizable(True)
        self.centralwidget_layout.addWidget(self.staff_scroll, 0, 0)
    
        self.staff_scroll_content = QWidget()
        self.staff_scroll_content.setGeometry(QRect(0, 0, 1000, 200))   
        self.staff_scroll_layout = QGridLayout(self.staff_scroll_content)
    
        self.staff_main = QFrame(self.staff_scroll_content)
        self.staff_main_layout = QGridLayout(self.staff_main)

        self.staff_grid = QGridLayout()
        self.staff_main_layout.addLayout(self.staff_grid, 0, 0)
    
        self.staff_scroll_layout.addWidget(self.staff_main, 0, 0)
    
        self.staff_scroll.setWidget(self.staff_scroll_content)
    
        self.setCentralWidget(self.centralwidget)
    
    def create_boxes(self):
        number = 1000
        columns = 3
        for index in range(number):            
            x = index // columns
            y = index % columns
            self.staff_sub = QGroupBox()
            self.staff_sub.setFixedSize(250, 130)
            self.staff_grid.addWidget(self.staff_sub, x, y)

            self.staff_dp = QLabel(self.staff_sub)
            self.staff_dp.setGeometry(5, 65, 60, 60)
            self.staff_dp.setPixmap(self.pxmap)
            self.staff_dp.setScaledContents(True)
             
            self.staff_name = QLabel(self.staff_sub)
            self.staff_name.setGeometry(80, 60, 160, 25)
            self.staff_name.setText(str(self.result))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

Мне просто нужна дополнительная помощь. Мне удалось получить способ автоматически создавать групповые поля i.

Моя проблема теперь в том, что у меня есть некоторые данные, которые я хочу передать из базы данных sqlite, список имен сотрудников и их изображение в групповые поля . Я буду признателен за демо. В приведенном выше коде я создал групповой ящик, и я хочу, чтобы каждый нес эту информацию. Заранее спасибо.

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