Schleife mit button beginnen u. beenden
Verfasst: Freitag 8. Februar 2019, 16:57
Hallo wollte mir für meinen schrittmotor ein GUI Programm mit pyqt schreiben nun habe ich aber ein problem mit dem automatischen drehen Wie kann ich eine schleife in einer funktion starten und beim Loslassen des buttons die schleife wieder beenden ???
Habe schon einiges versucht jedoch ohne erfolg programm kann soweit auch ausprobiert werden Habe es mit kommentaren beschrieben wo sich die problemstellen befinden
Habe schon einiges versucht jedoch ohne erfolg programm kann soweit auch ausprobiert werden Habe es mit kommentaren beschrieben wo sich die problemstellen befinden
Code: Alles auswählen
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'C:\Users\Kira\Desktop\mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
import time
#import RPi.GPIO as GPIO
#GPIO.setmode(GPIO.BOARD)
#GPIO.setwarnings(False)
#GPIO.setup(36,GPIO.OUT)
#GPIO.setup(38,GPIO.OUT)
#GPIO.setup(40,GPIO.OUT)
#GPIO.output(36,GPIO.LOW)
#GPIO.output(38,GPIO.LOW)
#GPIO.output(40,GPIO.LOW)
#a=0
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(733, 581)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(100, 100, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.pressed.connect(self.Links)
self.pushButton.released.connect(self.Links_aus)
self.lcdNumber = QtWidgets.QLCDNumber(self.centralWidget)
self.lcdNumber.setGeometry(QtCore.QRect(150, 20, 101, 41))
self.lcdNumber.setObjectName("lcdNumber")
self.pushButton_2 = QtWidgets.QPushButton(self.centralWidget)
self.pushButton_2.setGeometry(QtCore.QRect(200, 100, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_2.pressed.connect(self.Rechts)
self.pushButton_2.released.connect(self.Rechts_aus)
self.label = QtWidgets.QLabel(self.centralWidget)
self.label.setGeometry(QtCore.QRect(70, 30, 51, 16))
self.label.setObjectName("label")
self.pushButton_3 = QtWidgets.QPushButton(self.centralWidget)
self.pushButton_3.setGeometry(QtCore.QRect(270, 30, 75, 23))
self.pushButton_3.setObjectName("pushButton_3")
self.label_2 = QtWidgets.QLabel(self.centralWidget)
self.label_2.setGeometry(QtCore.QRect(150, 200, 61, 16))
self.label_2.setObjectName("label_2")
self.spinBox = QtWidgets.QSpinBox(self.centralWidget)
self.spinBox.setGeometry(QtCore.QRect(90, 250, 91, 22))
self.spinBox.setObjectName("spinBox")
self.radioButton = QtWidgets.QRadioButton(self.centralWidget)
self.radioButton.setGeometry(QtCore.QRect(100, 300, 82, 17))
self.radioButton.setObjectName("radioButton")
self.radioButton_2 = QtWidgets.QRadioButton(self.centralWidget)
self.radioButton_2.setGeometry(QtCore.QRect(210, 300, 82, 17))
self.radioButton_2.setObjectName("radioButton_2")
self.pushButton_4 = QtWidgets.QPushButton(self.centralWidget)
self.pushButton_4.setGeometry(QtCore.QRect(140, 340, 75, 23))
self.pushButton_4.setObjectName("pushButton_4")
self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralWidget)
self.doubleSpinBox.setGeometry(QtCore.QRect(210, 250, 62, 22))
self.doubleSpinBox.setMinimum(0.0)
self.doubleSpinBox.setMaximum(999.99)
self.doubleSpinBox.setObjectName("doubleSpinBox")
self.label_3 = QtWidgets.QLabel(self.centralWidget)
self.label_3.setGeometry(QtCore.QRect(110, 230, 47, 13))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralWidget)
self.label_4.setGeometry(QtCore.QRect(200, 230, 91, 16))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralWidget)
self.label_5.setGeometry(QtCore.QRect(170, 80, 47, 13))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralWidget)
self.label_6.setGeometry(QtCore.QRect(160, 130, 47, 13))
self.label_6.setObjectName("label_6")
#Hier befindet sich der button um den es sich handelt
self.pushButton_5 = QtWidgets.QPushButton(self.centralWidget)
self.pushButton_5.setGeometry(QtCore.QRect(100, 150, 75, 23))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_5.pressed.connect(self.Button_auto_Links_an)
self.pushButton_5.released.connect(self.Button_auto_Links_aus)
self.pushButton_6 = QtWidgets.QPushButton(self.centralWidget)
self.pushButton_6.setGeometry(QtCore.QRect(200, 150, 75, 23))
self.pushButton_6.setObjectName("pushButton_6")
MainWindow.setCentralWidget(self.centralWidget)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 733, 21))
self.menuBar.setObjectName("menuBar")
MainWindow.setMenuBar(self.menuBar)
self.mainToolBar = QtWidgets.QToolBar(MainWindow)
self.mainToolBar.setObjectName("mainToolBar")
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)
self.statusBar = QtWidgets.QStatusBar(MainWindow)
self.statusBar.setObjectName("statusBar")
MainWindow.setStatusBar(self.statusBar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Links"))
self.pushButton_2.setText(_translate("MainWindow", "Rechts"))
self.label.setText(_translate("MainWindow", "Schrittzahl"))
self.pushButton_3.setText(_translate("MainWindow", "Reset"))
self.label_2.setText(_translate("MainWindow", "Automatik"))
self.radioButton.setText(_translate("MainWindow", "Links"))
self.radioButton_2.setText(_translate("MainWindow", "Rechts"))
self.pushButton_4.setText(_translate("MainWindow", "Start"))
self.label_3.setText(_translate("MainWindow", "Schrittzahl"))
self.label_4.setText(_translate("MainWindow", "Geschwindigkeit in"))
self.label_5.setText(_translate("MainWindow", "1 Schritt"))
self.label_6.setText(_translate("MainWindow", "Dauerhaft"))
self.pushButton_5.setText(_translate("MainWindow", "Links"))
self.pushButton_6.setText(_translate("MainWindow", "Rechts"))
def Links(self):
print("Links")
#GPIO.output(36, GPIO.HIGH)
#GPIO.output(38, GPIO.HIGH)
#GPIO.output(40, GPIO.LOW)
def Links_aus(self):
print ("Links")
#GPIO.output(36, GPIO.LOW)
#GPIO.output(38, GPIO.HIGH)
#GPIO.output(40, GPIO.HIGH)
def Rechts(self):
print("Rechts")
#GPIO.output(36, GPIO.HIGH)
#GPIO.output(38, GPIO.LOW)
#GPIO.output(40, GPIO.LOW)
def Rechts_aus(self):
print("Rechts_Aus")
#GPIO.output(36, GPIO.LOW)
#GPIO.output(38, GPIO.LOW)
#GPIO.output(40, GPIO.HIGH)
# Hier die schleife um die es sich handelt
def Button_auto_Links_an(self):
#global a
#a=1
Links_Auto(self,1)
def Button_auto_Links_aus(self):
#global a
#a=0
Links_Auto(self,0)
def Links_Auto(a):
counter = 0
a=True
print("Links")
while 0 < a:
#GPIO.output(36, GPIO.LOW)
#GPIO.output(38, GPIO.HIGH)
#GPIO.output(40, GPIO.HIGH)
time.sleep(0.1)
#GPIO.output(40, GPIO.LOW)
counter = counter + 1
print(counter)
time.sleep(0.1)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())