1
我想知道,我怎麼能我按一下按鈕self.runButton.clicked.connect(self.iniciar)
Pyqt5如何避免由while循環無限凍結程序?
程序凍結每次停止功能iniciar
的過程中,我不能做其他動作。
我希望定時器繼續在功能iniciar
一直無限重複的工作。
也是self.runButton1
停止功能iniciar
按鈕。
我的代碼:
#!/usr/bin/env python3
# Program created for play audios of time in zapoteco'
#
# Created by: Python 3.6, PyQt5 5.9.2.
#
# Author: Raul Espinosa [email protected]
#
# WARNING! All changes made in this file will be lost!
#
# Version 0.2 GUI
import time
import subprocess
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(383, 263)
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(164, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(164, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(173, 127, 168))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(114, 159, 207))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(164, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(164, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(173, 127, 168))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(114, 159, 207))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(46, 52, 54))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(138, 226, 52))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(190, 190, 190))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(114, 159, 207))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(114, 159, 207))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush)
Form.setPalette(palette)
Form.setPalette(palette)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(10, 0, 361, 181))
self.label.setObjectName("label")
self.horizontalSlider = QtWidgets.QSlider(Form)
self.horizontalSlider.setGeometry(QtCore.QRect(110, 240, 160, 16))
self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
self.horizontalSlider.setObjectName("horizontalSlider")
self.horizontalSlider.setRange(0,100)
self.horizontalSlider.setSingleStep(1)
self.horizontalSlider.valueChanged.connect(self.valueHandler)
self.runButton = QtWidgets.QPushButton(Form)
self.runButton.setGeometry(QtCore.QRect(50, 180, 80, 25))
self.runButton.setObjectName("runButton")
self.runButton.clicked.connect(self.iniciar)
self.runButton1 = QtWidgets.QPushButton(Form)
self.runButton1.setGeometry(QtCore.QRect(250, 180, 80, 25))
self.runButton1.setObjectName("runButton1")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(160, 220, 55, 17))
self.label_2.setObjectName("label_2")
self.timer = QtCore.QTimer(Form)
self.timer.timeout.connect(self.Time)
self.timer.start(1000)
self.lcdNumber = QtWidgets.QLCDNumber(Form)
self.lcdNumber.setGeometry(QtCore.QRect(280, 0, 101, 61))
self.lcdNumber.setInputMethodHints(QtCore.Qt.ImhNone)
self.lcdNumber.setFrameShape(QtWidgets.QFrame.NoFrame)
self.lcdNumber.setFrameShadow(QtWidgets.QFrame.Raised)
self.lcdNumber.setSmallDecimalPoint(True)
self.lcdNumber.setDigitCount(5)
self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec)
self.lcdNumber.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
self.lcdNumber.display(time.strftime("%H"+":"+"%M"))
#tiempo = time.strftime("%H"+":"+"%M")
#print (tiempo)
#self.lcdNumber.setProperty("value", 12:20)
self.lcdNumber.setObjectName("lcdNumber")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def Time(self):
self.lcdNumber.display(time.strftime("%H"+":"+"%M"))
def valueHandler(self,value):
scaledValue = float(value)/100
print (scaledValue) , type(scaledValue)
return scaledValue
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "XIGABA"))
Form.setToolTip(_translate("Form", "<html><head/><body><pre style=\" margin-top:0px; margin-bottom:15px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-