Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pyside6
#1
I wrote some early Qt code using the designer, and have used tkinter and wxpython almost exclusively since.
I am now in early learning of QT using Pyside6, (finally working on an application where GUI will be exclusively QT).
I'm trying to place a QTableWidget on top of a QMainWindow, and am doing something wrong, but not sure what.
Could use some help.

here's the code I attempted to write:
import sys
from PySide6.QtWidgets import (QApplication, QMainWindow,
        QWidget, QTableWidget, QTableWidgetItem)
from PySide6.QtGui import QPalette, QColor


class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        self.setWindowTitle("Table Widget")


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")]

        self.table = QTableWidget()

    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.table.setRowCount(len(self.colors))
        self.table.setColumnCount(len(self.colors[0]) + 1)
        self.table.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.table.setItem(i, 0, item_name)
            self.table.setItem(i, 1, item_code)
            self.table.setItem(i, 2, item_color)


def main():
    app = QApplication(sys.argv)

    window = MainWindow()
    table = Table(parent = window)
    table.define_table()
    # window.show()
    table.show()
    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 688 Dec-18-2023, 08:03 AM
Last Post: Drexel
  PySide6 Copy and Past from clipboard to QTableWedget zinho 6 1,380 Dec-07-2023, 10:10 PM
Last Post: zinho
Bug [PyQt] Dinamically adding widgets to layout [PySide6] carecavoador 2 1,532 Jun-19-2023, 12:57 PM
Last Post: carecavoador
  PySide6 QFontDialog - bug or just me? PatM 1 1,132 Jan-22-2023, 01:29 PM
Last Post: Axel_Erfurt
  [PySide6] Load ui with UiLoader catlessness 6 8,956 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