web2 logo

Een knop toevoegen in een venster

Met PyQt4 (Qt4) kun je een knop toevoegen via de QPushButton widget.
De knop in het onderstaande voorbeeld laat een hint (tooltip) zien als je er met de muis overheen gaat. Als je er op klikt sluit het venster.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import sys
from PyQt4.QtGui import *

# Maak een PyQT4 applicatie object.
appie = QApplication(sys.argv)

# De QWidget widget is de basis class van alle user interface objecten in PyQt4.
venster = QWidget()

# De venstergrootte instellen.
venster.resize(320, 240)

# De venstertitel instellen.
venster.setWindowTitle("Mijn eerste venster!")

# Een knop toevoegen
knop = QPushButton('Mijn eerste knop!', venster)
knop.setToolTip('Klik hier om af te sluiten!')
knop.clicked.connect(exit)
knop.resize(knop.sizeHint())
knop.move(100, 80)

# Toon venster.
venster.show()

sys.exit(appie.exec_())

knop toevoegen

Een venster met een actieknop

Om een knop iets te laten doen als er op geklikt wordt, kun je signalen doorsturen naar een PyQt4 slot. Als een gebruiker een actie uitvoert, zoals klikken op een knop, dan kan dat signaal doorgestuurd worden naar een slot, die dan iets ten uitvoer kan brengen.
Onderstaand voorbeeld laat een klein venster zien met een knop, elke keer als een gebruiker iets doet met de knop wordt dit weergegeven in de terminal.

#! /usr/bin/env python
# -*- coding: utf-8 -*-

#
import sys
from PyQt4.QtCore import pyqtSlot
from PyQt4.QtGui import *

# Maak eenvenster.
appie = QApplication(sys.argv)
venster = QWidget()
venster.setWindowTitle('Actieknop')

# Maak een knop in het venster.
knop = QPushButton('Klik hier', venster)

# Maak de acties.
@pyqtSlot()
def on_click():
    print('geklikt')

@pyqtSlot()
def on_press():
    print('ingedrukt')

@pyqtSlot()
def on_release():
    print('losgelaten')

# De signalen verbinden met de slots.
knop.clicked.connect(on_click)
knop.pressed.connect(on_press)
knop.released.connect(on_release)

# Toon het venster en start de app
venster.show()
appie.exec_()

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ pyqt ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.