CustomPyQt Basics - Dliammc/CustomPyQt GitHub Wiki

Here is CustomPyQt examples for a quick start and preview of the library

If you want to learn more about PySide6 and PyQt6 concepts, these tutorials will help:

Simple Example

from PyCt6 import CMainWindow, CButton, set_appearance_mode, set_color_theme
from PySide6.QtWidgets import QApplication, QVBoxLayout
from PySide6.QtCore import Qt

set_appearance_mode("system")
set_color_theme("blue")

def button_click():
    print("Button Clicked!")

app = QApplication()

win = CMainWindow(width=400, height=250, title="CMainWindow", background_color="rgb(30,30,30)")

layout = QVBoxLayout()
layout.setALignment(Qt.AlignmentFlag.AlignCenter)

button = CButton(master=self, text="CButton", command=button_click())

layout.addWidget(button)

win.setLayout(layout)

win.show()
app.exec()

Object-Oriented Example

from PyCt6 import CMainWindow, CButton, set_appearance_mode, set_color_theme
from PySide6.QtWidgets import QApplication, QVBoxLayout
from PySide6.QtCore import Qt

set_appearance_mode("system")
set_color_theme("blue")

class MainWindow(CMainWindow):
    def __init__(self):
        super().__init__(width=400, height=250, title="CMainWindow", background_color="rgb(30,30,30)")

        self.main_layout = QVBoxLayout()
        self.main_layout.setAlignment(Qt.AlignmentFlag.AlignCenter)

        self.button = CButton(master=self, text="CButton", command=self.command)

        self.main_layout.addWidget(self.button)
        self.setLayout(self.main_layout)

    def command(self):
        print("Button Clicked!")

app = QApplication()
win = MainWindow()
win.show()
app.exec()

Creating a CustomPyQt Window

This is example creates a single window from CustomPyQt using CMainWindow (you can also use CTopLevel instead of CMainWindow)

# import CMainWindow from PyCt6
from PyCt6 import CMainWindow

# import required QApplication class from PySide6
from PySide6.QtWidgets import QApplication

# import sys for getting arguments for QApplication 
import sys

# create a class instance of a main window
class MainWindow(CMainWindow):
    def __init__(self):
        super().__init__()
        
        #arguments go here

    #methods go here
    def example_method(self):
       print("This is an example")


# create an instance of a application
app = QApplication(sys.argv)

# create an instance of the main window and display it
win = MainWindow()
win.show()

#start the app instance
app.exec()

Add Widgets and Layouts

You can also add widgets to CMainWindow with layouts from PySide6 and/or PyQt6


# import required CustomPyQt elements including CButton
from PyCt6 import CMainWindow, CButton, CLineEdit

# import a vertical and horizontal layouts from PySide6
from PySide6.QtWidgets import QApplication, QVBoxLayout, QHBoxLayout

import sys

class MainWindow(CMainWindow):
    def __init__(self):
        super().__init__()

        # create layout instances from PySide6
        self.main_layout = QHBoxLayout()
        self.vertical_layout = QVBoxLayout()
        self.horizontal_layout = QHBoxLayout()

        # create instances of CustomPyQt widgets
        self.button1 = CButton(self, command=self.example_method)
        self.button2 = CButton(self)
        self.button3 = CButton(self)

        self.line_edit1 = CLineEdit(self, placeholder_text="In vertical layout")
        self.line_edit2 = CLineEdit(self, placeholder_text="In horizontal layout")
 
        # add some widgets to the vertical layout
        self.vertical_layout.addWidget(self.button1)
        self.vertical_layout.addWidget(self.button2)
        self.vertical_layout.addWidget(self.line_edit1)

        # add some widgets to the horizontal layout
        self.horizontal_layout.addWidget(self.button3)
        self.horizontal_layout.addWidget(self.line_edit2)

        # add layouts to the main layohut
        self.main_layout.addLayout(self.vertical_layout)
        self.main_layout.addLayout(self.horizontal_layout)

        # set main layout of main window
        self.setLayout(self.main_layout)

    def example_method(self):
       print("This is an example")

app = QApplication(sys.argv)
win = MainWindow()
win.show()
app.exec()