Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pyside6
#7
(Nov-28-2022, 02:05 PM)Larz60+ Wrote: Is this statement still used when you have, for example, a screen with many widgets, panels, etc. each related, but somewhat independant of the other?

If you have more widgets use layouts.

I've added some widgets to your code for example

import sys
from PySide6.QtWidgets import (QApplication, QMainWindow,
        QWidget, QTableWidget, QTableWidgetItem, QHeaderView,
        QHBoxLayout, QVBoxLayout, QTextEdit, QSizePolicy)
 
from PySide6.QtGui import QPalette, QColor
 
 
class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
 
        self.setWindowTitle("Table Widget")
        self.table = Table()
        self.table.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
        self.table.define_table()
        self.table.itemSelectionChanged.connect(self.get_cell)
        
        # hbox layout
        hbox = QHBoxLayout()
        hbox.addWidget(self.table)
        
        # add textedit right to table
        self.text_edit = QTextEdit(plainText = "Hello World")
        
        hbox.addWidget(self.text_edit)
        
        #vbox layout
        vbox = QVBoxLayout()
        
        # add hbox to vbox
        vbox.addLayout(hbox)
        
        # add textedit below table
        self.another_text_edit = QTextEdit(plainText = "Hello World")
        vbox.addWidget(self.another_text_edit)
        
        # central widget
        central_widget = QWidget()
        central_widget.setLayout(vbox)
        
        self.setCentralWidget(central_widget)
        self.statusBar().showMessage("Ready")
        
    def get_cell(self):
        widget = self.table
        index = widget.selectedItems()[0]
        cell_text = widget.item(index.row(), index.column()).text()
        self.statusBar().showMessage(f"cell text: {cell_text}")
 
 
class Table(QTableWidget):
    def __init__(self, parent=None):
        super(Table, self).__init__(parent)
 
        self.colors = [("Red", "#FF0000"),
                ("Green", "#00FF00"),
                ("Blue", "#0000FF"),
                ("Black", "#000000"),
                ("White", "#FFFFFF"),
                ("Electric Green", "#41CD52"),
                ("Dark Blue", "#222840"),
                ("Yellow", "#F9E56d")]
 
    def get_rgb_from_hex(self, code):
        code_hex = code.replace("#", "")
        rgb = tuple(int(code_hex[i:i+2], 16) for i in (0, 2, 4))
        return QColor.fromRgb(rgb[0], rgb[1], rgb[2])
 
    def define_table(self):
        self.setItemDelegate(self.itemDelegate())
        self.setRowCount(len(self.colors))
        self.setColumnCount(len(self.colors[0]) + 1)
        self.setHorizontalHeaderLabels(["Name", "Hex Code", "Color"])
         
        for i, (name, code) in enumerate(self.colors):
            item_name = QTableWidgetItem(name)
            item_code = QTableWidgetItem(code)
            item_color = QTableWidgetItem()
            item_color.setBackground(self.get_rgb_from_hex(code))
            self.setItem(i, 0, item_name)
            self.setItem(i, 1, item_code)
            self.setItem(i, 2, item_color)
 
        hh = self.horizontalHeader()
        hh.setSectionResizeMode(QHeaderView.ResizeToContents)
 
 
def main():
    app = QApplication(sys.argv)
    window = MainWindow()
    window.setGeometry(100, 100, 600, 500)
    window.show()
    app.exec()
 
 
if __name__ == '__main__':
    main()
Reply


Messages In This Thread
Pyside6 - by Larz60+ - Nov-27-2022, 10:42 PM
RE: Pyside6 - by Yoriz - Nov-27-2022, 11:33 PM
RE: Pyside6 - by Larz60+ - Nov-28-2022, 12:02 AM
RE: Pyside6 - by Axel_Erfurt - Nov-28-2022, 12:55 PM
RE: Pyside6 - by Larz60+ - Nov-28-2022, 02:05 PM
RE: Pyside6 - by deanhystad - Nov-28-2022, 05:20 PM
RE: Pyside6 - by Axel_Erfurt - Nov-28-2022, 05:59 PM
RE: Pyside6 - by Larz60+ - Nov-28-2022, 07:25 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  PySide6 - Connect to DBus signal - Correct syntax Drexel 1 701 Dec-18-2023, 08:03 AM
Last Post: Drexel
  PySide6 Copy and Past from clipboard to QTableWedget zinho 6 1,408 Dec-07-2023, 10:10 PM
Last Post: zinho
Bug [PyQt] Dinamically adding widgets to layout [PySide6] carecavoador 2 1,544 Jun-19-2023, 12:57 PM
Last Post: carecavoador
  PySide6 QFontDialog - bug or just me? PatM 1 1,139 Jan-22-2023, 01:29 PM
Last Post: Axel_Erfurt
  [PySide6] Load ui with UiLoader catlessness 6 8,999 Nov-24-2021, 02:17 PM
Last Post: catlessness

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020