Random PyQt5 Application with Button Interaction

  • Share this:

Code introduction


This code uses the PyQt5 library to randomly select modules to create a simple window with a button. Clicking the button will print a message to the console.


Technology Stack : PyQt5, QWidget, QPushButton, QVBoxLayout, QApplication

Code Type : The type of code

Code Difficulty : Advanced


                
                    
import random
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

def random_pyqt_function():
    # Randomly select PyQt modules and create a custom function
    selected_module = random.choice(["QWidget", "QPushButton", "QVBoxLayout", "QApplication"])
    if selected_module == "QWidget":
        def create_window():
            app = QApplication([])
            window = QWidget()
            window.setWindowTitle("Random PyQt Window")
            window.setGeometry(100, 100, 300, 200)
            window.show()
            return window
    elif selected_module == "QPushButton":
        def create_button(window):
            button = QPushButton("Click Me", window)
            button.clicked.connect(lambda: print("Button clicked!"))
            return button
    elif selected_module == "QVBoxLayout":
        def layout_button(button):
            layout = QVBoxLayout()
            layout.addWidget(button)
            return layout
    elif selected_module == "QApplication":
        def main():
            app = QApplication([])
            window = QWidget()
            window.setWindowTitle("Random PyQt Application")
            layout = QVBoxLayout()
            button = QPushButton("Click Me", window)
            layout.addWidget(button)
            window.setLayout(layout)
            window.show()
            app.exec_()
    
    # Return the selected function
    return locals()[selected_module]

# Usage
window = random_pyqt_function()
if 'create_window' in window:
    window = window['create_window']()
elif 'create_button' in window:
    button = window['create_button'](window)
elif 'layout_button' in window:
    layout = window['layout_button'](button)
elif 'main' in window:
    window = window['main']()