如何通过python和pyqt

时间:2015-07-20 05:07:51

标签: python pyqt4 clock alarm

我使用了dateTimeEdit和pushButton来设置闹钟时间,但我不知道我的想法是否正确。

我想到的是点击按钮时,将编辑dateTimeEdit。因此,我的问题是我想知道通过按钮为dateTimeEdit设置时间的函数是正确的。

这是我的代码。

# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'setting_AC.ui'
#
# Created by: PyQt4 UI code generator 4.11.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui
import sys
import time

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class setting_AC(QtGui.QWidget):
def __init__(self, parent = None):
    QtGui.QWidget.__init__(self, parent)
    self.setupUi(self)
def setupUi(self, Form):
    Form.setObjectName(_fromUtf8("Form"))
    Form.resize(320, 240)
    self.pushButton = QtGui.QPushButton(Form)
    self.pushButton.setGeometry(QtCore.QRect(150, 200, 71, 31))
    self.pushButton.setObjectName(_fromUtf8("pushButton"))
    self.pushButton_2 = QtGui.QPushButton(Form)
    self.pushButton_2.setGeometry(QtCore.QRect(240, 200, 71, 31))
    self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
    self.tabWidget = QtGui.QTabWidget(Form)
    self.tabWidget.setGeometry(QtCore.QRect(10, 10, 301, 181))
    self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
    self.tab = QtGui.QWidget()
    self.tab.setObjectName(_fromUtf8("tab"))
    self.dateTimeEdit = QtGui.QDateTimeEdit(self.tab)
    self.dateTimeEdit.setGeometry(QtCore.QRect(140, 10, 101, 41))
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Pristina"))
    font.setPointSize(24)
    font.setBold(True)
    font.setWeight(75)
    self.dateTimeEdit.setFont(font)
    self.dateTimeEdit.setAlignment(QtCore.Qt.AlignCenter)
    self.dateTimeEdit.setButtonSymbols(QtGui.QAbstractSpinBox.NoButtons)
    self.dateTimeEdit.setSpecialValueText(_fromUtf8(""))
    self.dateTimeEdit.setMinimumTime(QtCore.QTime(0, 0, 0))
    self.dateTimeEdit.setObjectName(_fromUtf8("timeEdit"))
    self.label = QtGui.QLabel(self.tab)
    self.label.setGeometry(QtCore.QRect(10, 10, 111, 41))
    font = QtGui.QFont()
    font.setPointSize(12)
    self.label.setFont(font)
    self.label.setObjectName(_fromUtf8("label"))
    self.gridLayoutWidget = QtGui.QWidget(self.tab)
    self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 54, 271, 101))
    self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
    self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
    self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
    self.pushButton_10 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_10.setFont(font)
    self.pushButton_10.setObjectName(_fromUtf8("pushButton_10"))
    self.gridLayout.addWidget(self.pushButton_10, 1, 3, 1, 1)
    self.pushButton_8 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_8.setFont(font)
    self.pushButton_8.setObjectName(_fromUtf8("pushButton_8"))
    self.gridLayout.addWidget(self.pushButton_8, 1, 1, 1, 1)
    self.pushButton_6 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_6.setFont(font)
    self.pushButton_6.setObjectName(_fromUtf8("pushButton_6"))
    self.gridLayout.addWidget(self.pushButton_6, 0, 3, 1, 1)
    self.pushButton_7 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_7.setFont(font)
    self.pushButton_7.setObjectName(_fromUtf8("pushButton_7"))
    self.gridLayout.addWidget(self.pushButton_7, 1, 0, 1, 1)
    self.pushButton_9 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_9.setFont(font)
    self.pushButton_9.setObjectName(_fromUtf8("pushButton_9"))
    self.gridLayout.addWidget(self.pushButton_9, 1, 2, 1, 1)
    self.pushButton_4 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_4.setFont(font)
    self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
    self.gridLayout.addWidget(self.pushButton_4, 0, 1, 1, 1)
    self.pushButton_5 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_5.setFont(font)
    self.pushButton_5.setObjectName(_fromUtf8("pushButton_5"))
    self.gridLayout.addWidget(self.pushButton_5, 0, 2, 1, 1)
    self.pushButton_3 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_3.setFont(font)
    self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
    self.gridLayout.addWidget(self.pushButton_3, 0, 0, 1, 1)
    self.pushButton_11 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_11.setFont(font)
    self.pushButton_11.setObjectName(_fromUtf8("pushButton_11"))
    self.gridLayout.addWidget(self.pushButton_11, 2, 0, 1, 1)
    self.pushButton_12 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_12.setFont(font)
    self.pushButton_12.setObjectName(_fromUtf8("pushButton_12"))
    self.gridLayout.addWidget(self.pushButton_12, 2, 1, 1, 1)
    self.pushButton_13 = QtGui.QPushButton(self.gridLayoutWidget)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Cambria"))
    font.setPointSize(12)
    font.setBold(True)
    font.setWeight(75)
    self.pushButton_13.setFont(font)
    self.pushButton_13.setObjectName(_fromUtf8("pushButton_13"))
    self.gridLayout.addWidget(self.pushButton_13, 2, 2, 1, 1)
    self.tabWidget.addTab(self.tab, _fromUtf8(""))
    self.tab_2 = QtGui.QWidget()
    self.tab_2.setObjectName(_fromUtf8("tab_2"))
    self.label_2 = QtGui.QLabel(self.tab_2)
    self.label_2.setGeometry(QtCore.QRect(10, 10, 71, 41))
    font = QtGui.QFont()
    font.setPointSize(12)
    self.label_2.setFont(font)
    self.label_2.setObjectName(_fromUtf8("label_2"))
    self.gridLayoutWidget_2 = QtGui.QWidget(self.tab_2)
    self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 69, 291, 81))
    self.gridLayoutWidget_2.setObjectName(_fromUtf8("gridLayoutWidget_2"))
    self.gridLayout_2 = QtGui.QGridLayout(self.gridLayoutWidget_2)
    self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
    self.pushButton_14 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_14.setFont(font)
    self.pushButton_14.setObjectName(_fromUtf8("pushButton_14"))
    self.gridLayout_2.addWidget(self.pushButton_14, 0, 0, 1, 1)
    self.pushButton_17 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_17.setFont(font)
    self.pushButton_17.setObjectName(_fromUtf8("pushButton_17"))
    self.gridLayout_2.addWidget(self.pushButton_17, 0, 3, 1, 1)
    self.pushButton_16 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_16.setFont(font)
    self.pushButton_16.setObjectName(_fromUtf8("pushButton_16"))
    self.gridLayout_2.addWidget(self.pushButton_16, 0, 2, 1, 1)
    self.pushButton_15 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_15.setFont(font)
    self.pushButton_15.setObjectName(_fromUtf8("pushButton_15"))
    self.gridLayout_2.addWidget(self.pushButton_15, 0, 1, 1, 1)
    self.pushButton_18 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_18.setFont(font)
    self.pushButton_18.setObjectName(_fromUtf8("pushButton_18"))
    self.gridLayout_2.addWidget(self.pushButton_18, 1, 0, 1, 1)
    self.pushButton_19 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_19.setFont(font)
    self.pushButton_19.setObjectName(_fromUtf8("pushButton_19"))
    self.gridLayout_2.addWidget(self.pushButton_19, 1, 1, 1, 1)
    self.pushButton_20 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_20.setFont(font)
    self.pushButton_20.setObjectName(_fromUtf8("pushButton_20"))
    self.gridLayout_2.addWidget(self.pushButton_20, 1, 2, 1, 1)
    self.pushButton_21 = QtGui.QPushButton(self.gridLayoutWidget_2)
    font = QtGui.QFont()
    font.setFamily(_fromUtf8("Calibri"))
    font.setPointSize(12)
    font.setBold(True)
    font.setItalic(False)
    font.setWeight(75)
    self.pushButton_21.setFont(font)
    self.pushButton_21.setObjectName(_fromUtf8("pushButton_21"))
    self.gridLayout_2.addWidget(self.pushButton_21, 1, 3, 1, 1)
    self.lineEdit = QtGui.QLineEdit(self.tab_2)
    self.lineEdit.setGeometry(QtCore.QRect(80, 20, 211, 21))
    self.lineEdit.setMaxLength(35)
    self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
    self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
    self.tab_3 = QtGui.QWidget()
    self.tab_3.setObjectName(_fromUtf8("tab_3"))
    self.radioButton = QtGui.QRadioButton(self.tab_3)
    self.radioButton.setGeometry(QtCore.QRect(10, 10, 51, 41))
    self.radioButton.setObjectName(_fromUtf8("radioButton"))
    self.radioButton_2 = QtGui.QRadioButton(self.tab_3)
    self.radioButton_2.setGeometry(QtCore.QRect(10, 50, 51, 41))
    self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
    self.radioButton_3 = QtGui.QRadioButton(self.tab_3)
    self.radioButton_3.setGeometry(QtCore.QRect(10, 90, 51, 41))
    self.radioButton_3.setObjectName(_fromUtf8("radioButton_3"))
    self.lineEdit_2 = QtGui.QLineEdit(self.tab_3)
    self.lineEdit_2.setGeometry(QtCore.QRect(70, 99, 211, 21))
    self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
    self.tabWidget.addTab(self.tab_3, _fromUtf8(""))

    self.retranslateUi(Form)
    self.tabWidget.setCurrentIndex(0)
    QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
    Form.setWindowTitle(_translate("Form", "Setting_AC", None))
    self.pushButton.setText(_translate("Form", "完成", None))
    self.pushButton_2.setText(_translate("Form", "返回", None))
    self.dateTimeEdit.setDisplayFormat(_translate("Form", "hh:mm", None))
    self.label.setText(_translate("Form", "設定(24小時制)", None))
    self.pushButton_10.setText(_translate("Form", "8", None))
    self.pushButton_8.setText(_translate("Form", "6", None))
    self.pushButton_6.setText(_translate("Form", "4", None))
    self.pushButton_7.setText(_translate("Form", "5", None))
    self.pushButton_9.setText(_translate("Form", "7", None))
    self.pushButton_4.setText(_translate("Form", "2", None))
    self.pushButton_5.setText(_translate("Form", "3", None))
    self.pushButton_3.setText(_translate("Form", "1", None))
    self.pushButton_11.setText(_translate("Form", "9", None))
    self.pushButton_12.setText(_translate("Form", "0", None))
    self.pushButton_13.setText(_translate("Form", "Reset", None))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "時間設定", None))
    self.label_2.setText(_translate("Form", "重複週期", None))
    self.pushButton_14.setText(_translate("Form", "Sun.", None))
    self.pushButton_17.setText(_translate("Form", "Wed.", None))
    self.pushButton_16.setText(_translate("Form", "Tue.", None))
    self.pushButton_15.setText(_translate("Form", "Mon.", None))
    self.pushButton_18.setText(_translate("Form", "Thu.", None))
    self.pushButton_19.setText(_translate("Form", "Fri.", None))
    self.pushButton_20.setText(_translate("Form", "Sat.", None))
    self.pushButton_21.setText(_translate("Form", "Reset.", None))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Form", "週期設定", None))
    self.radioButton.setText(_translate("Form", "預設1", None))
    self.radioButton_2.setText(_translate("Form", "預設2", None))
    self.radioButton_3.setText(_translate("Form", "自  訂", None))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("Form", "鬧鈴設定", None))

    self.pushButton_3.clicked.connect(self.set1)
#    self.pushButton_4.clicked.connect(self.set2)
#    self.pushButton_5.clicked.connect(self.set3)
#    self.pushButton_6.clicked.connect(self.set4)
#    self.pushButton_7.clicked.connect(self.set5)
#    self.pushButton_8.clicked.connect(self.set6)
#    self.pushButton_9.clicked.connect(self.set7)
#    self.pushButton_10.clicked.connect(self.set8)
#    self.pushButton_11.clicked.connect(self.set9)
#    self.pushButton_12.clicked.connect(self.set0)
#    self.pushButton_13.clicked.connect(self.resetTime)

    self.pushButton_14.clicked.connect(self.setSun)
    self.pushButton_15.clicked.connect(self.setMon)
    self.pushButton_16.clicked.connect(self.setTue)
    self.pushButton_17.clicked.connect(self.setWed)
    self.pushButton_18.clicked.connect(self.setThu)
    self.pushButton_19.clicked.connect(self.setFri)
    self.pushButton_20.clicked.connect(self.setSat)
    self.pushButton_21.clicked.connect(self.resetPeriod)

    self.radioButton_3.clicked.connect(self.filebroswer)

#setting alarm time
def set1(self,Form):
    self.dateTimeEdit.setTime(self,)
#setting Period
def setSun(self,Form):
    self.lineEdit.insert("Sun. ")
def setMon(self,Form):
    self.lineEdit.insert("Mon. ")
def setTue(self,Form):
    self.lineEdit.insert("Tue. ") 
def setWed(self,Form):
    self.lineEdit.insert("Wed. ")
def setThu(self,Form):
    self.lineEdit.insert("Thu. ")
def setFri(self,Form):
    self.lineEdit.insert("Fri. ")
def setSat(self,Form):
    self.lineEdit.insert("Sat. ")
def resetPeriod(self,Form): 
    self.lineEdit.clear()
#setting ringstone
def filebroswer(self,Form):
    filter = "mp3(*.mp3)"
    filename = QtGui.QFileDialog.getOpenFileNameAndFilter(self,"Open file", "C:\\Users\\MIS\\Desktop", filter)
    self.lineEdit_2.setText(filename[0])

if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
ex = setting_AC()
ex.show()
sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:0)

确保您的编码(通常)更加pythonic。例如,不是让7个不同的函数基本上做同样的事情(setSun,setTue ..etc),而是创建一个更通用和干净的剪切函数。

def setDay(self, Form, day):
    self.lineEdit.insert("%s. "%(day))

现在,就你的问题而言。实际为具有任意日期的QDateTimeEdit设置日期时间的最佳方法是使用QDate。请参阅以下内容:

#Create a QDate in the following format Year, Month, Day
alarm_date = QtCore.QDate(2015,7,20) 
dateTimeEdit.setDate(alarm_date)

因此,如果您现在将这两个概念结合起来,您可以做一些干净利落的解决方案!