input

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

input

Marc Stevens

 

Beste Python experts,

 

Ik ben sinds kort aan het stoeien met pyqt, en ik vraag me af hoe je de knoppen die je met dit programma maakt een functie geeft.

Ik heb het al geprobeerd door bijv.  in de volgende regel

 

self.lineEdit.cursorPositionChanged['int','int'].connect(self.lineEdit.display)

 

lineEdit te onderscheppen door lineEdit te vervangen door ‘invoer’

en dan van te voren de regels

 

def invoer():

            input(int(x))

 

Dit is natuurlijk te mooi om waar te zijn als dat zo eenvoudig was.

Toch heb ik dit in een instructie video zo ergens gezien.

 

Nu mijn vraag is:

Hoe krijg ik meer grip op de functies van buttons en hoe kan ik zelf de invoer regelen?

    

 

 

from PyQt5 import QtCore, QtGui, QtWidgets

 

 

class Ui_Form(object):

    def setupUi(self, Form):

        Form.setObjectName("Form")

        Form.resize(400, 300)

        self.layoutWidget = QtWidgets.QWidget(Form)

        self.layoutWidget.setGeometry(QtCore.QRect(30, 30, 331, 221))

        self.layoutWidget.setObjectName("layoutWidget")

        self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)

        self.verticalLayout.setObjectName("verticalLayout")

        self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)

        self.lineEdit.setObjectName("lineEdit")

        self.verticalLayout.addWidget(self.lineEdit)

        self.label = QtWidgets.QLabel(self.layoutWidget)

        self.label.setObjectName("label")

        self.verticalLayout.addWidget(self.label)

        self.lcdNumber = QtWidgets.QLCDNumber(self.layoutWidget)

        self.lcdNumber.setObjectName("lcdNumber")

        self.verticalLayout.addWidget(self.lcdNumber)

        self.pushButton = QtWidgets.QPushButton(Form)

        self.pushButton.setGeometry(QtCore.QRect(130, 270, 75, 23))

        self.pushButton.setObjectName("pushButton")

 

        self.retranslateUi(Form)

        self.lineEdit.cursorPositionChanged['int','int'].connect(self.lineEdit.display)

        self.pushButton.clicked.connect(self.lcdNumber.clear)

        QtCore.QMetaObject.connectSlotsByName(Form)

 

    def retranslateUi(self, Form):

        _translate = QtCore.QCoreApplication.translate

        Form.setWindowTitle(_translate("Form", "Form"))

        self.label.setText(_translate("Form", "geef een getal in"))

        self.pushButton.setText(_translate("Form", "Nieuw getal"))

 

 

if __name__ == "__main__":

    import sys

    app = QtWidgets.QApplication(sys.argv)

    Form = QtWidgets.QWidget()

    ui = Ui_Form()

    ui.setupUi(Form)

    Form.show()

    sys.exit(app.exec_())

 

Dit e-mailbericht is verzonden vanaf een virusvrije computer die wordt beschermd door Avast.
www.avast.com

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: input

Albert Visser
Hoi Marc,


On Wed, 30 Dec 2015 18:55:08 +0100, Marc Stevens <[hidden email]> wrote:

>
> Beste Python experts,
>
> Ik ben sinds kort aan het stoeien met pyqt, en ik vraag me af hoe je de  
> knoppen die je met dit programma maakt een functie geeft.
> Ik heb het al geprobeerd door bijv.  in de volgende regel
>
> self.lineEdit.cursorPositionChanged['int','int'].connect(self.lineEdit.display)
>
> lineEdit te onderscheppen door lineEdit te vervangen door ‘invoer’
> en dan van te voren de regels
>
> def invoer():
> input(int(x))
>

zoals je mogelijk kunt afleiden uit de regel

>         self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)

is dit de widget waarin je je tekstinvoer doet, dit is niet datgene waar  
je op in wilt grijpen. Even verderop zie je de definitie van een knop:

>         self.pushButton = QtWidgets.QPushButton(Form)

en nog iets verder de definitie van het aanklikken ervan:

>         self.pushButton.clicked.connect(self.lcdNumber.clear)

wat dit in dit geval doet is de display (self.lcdNumber) leegmaken. Dat is  
een standaard functie van dit widget, daarom zie je hem nergens in het  
programma terug.
Als je zelf iets wilt doen met een andere knop kun je er op dezelfde  
manier een definiëren en dan verwijzen naar een eigen functie of methode,  
bv.

>         self.doeIetsButton = QtWidgets.QPushButton(Form)
>         self.doeIetsButton.clicked.connect(self.doeIets)

> def doeIets():
>     ...code ...

> Dit is natuurlijk te mooi om waar te zijn als dat zo eenvoudig was.
> Toch heb ik dit in een instructie video zo ergens gezien.
>
> Nu mijn vraag is:
> Hoe krijg ik meer grip op de functies van buttons en hoe kan ik zelf de  
> invoer regelen?
>

Kun je iets meer toelichten wat je bedoelt met "zelf de invoer regelen"?

--
Vriendelijke groeten / Kind regards,

Albert Visser

Using Opera's mail client: http://www.opera.com/mail/
_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Loading...