Python 使用PyQt显示使用信号的日期更改
我试图编写一个简单的代码,其中用户选择一个日期,并使用Qlabel函数显示所选择的日期。然而,我在传输信号时犯了一个错误,我想问是否有人能帮我处理代码。多谢各位Python 使用PyQt显示使用信号的日期更改,python,pyqt,Python,Pyqt,我试图编写一个简单的代码,其中用户选择一个日期,并使用Qlabel函数显示所选择的日期。然而,我在传输信号时犯了一个错误,我想问是否有人能帮我处理代码。多谢各位 from PyQt4 import QtGui, QtCore from PyQt4.QtGui import * from PyQt4.QtCore import * class MyWindow(QtGui.QWidget): def __init__(self, parent=None): super(M
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MyWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.dateEdit = QtGui.QDateEdit(self)
self.lbl = QtGui.QLabel()
self.dateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
self.dateEdit.setMaximumDate(QtCore.QDate(7999, 12, 28))
self.dateEdit.setMaximumTime(QtCore.QTime(23, 59, 59))
self.dateEdit.setCalendarPopup(True)
layout = QGridLayout()
layout.addWidget(self.dateEdit,0,0)
layout.addWidget(self.lbl,0,1)
self.setLayout(layout)
self.connect(self.dateEdit, SIGNAL("dateChanged()"), self.updateUi)
def updateUi(self):
date1 = self.QtGui.QDateTimeEdit.QDate.date(self)
self.lbl.setText(date1.toString())
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')
main = MyWindow()
main.show()
sys.exit(app.exec_())
请尝试以下代码:
从PyQt4导入QtGui,QtCore
从PyQt4.QtGui导入*
从PyQt4.QtCore导入*
类MyWindow(QtGui.QWidget):
def uuu init uuu(self,parent=None):
超级(MyWindow,self)。\uuuuu init\uuuuuu(父级)
self.dateEdit=QtGui.QDateEdit(self)
self.lbl=QtGui.QLabel()
self.dateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
self.dateEdit.setMaximumDate(QtCore.QDate(7999,12,28))
self.dateEdit.setMaximumTime(QtCore.QTime(23,59,59))
self.dateEdit.setCalendarPopup(True)
布局=QGridLayout()
layout.addWidget(self.dateEdit,0,0)
layout.addWidget(self.lbl,0,1)
self.setLayout(布局)
self.connect(self.dateEdit,SIGNAL(“dateChanged(QDate)”),self.updateUi)
#或新样式:
#self.dateEdit.dateChanged.connect(self.updateUi)
def updateUi(自我):
date1=self.dateEdit.date()
self.lbl.setText(date1.toString())
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')
main=MyWindow()
main.show()
sys.exit(app.exec_())
请尝试以下代码:
从PyQt4导入QtGui,QtCore
从PyQt4.QtGui导入*
从PyQt4.QtCore导入*
类MyWindow(QtGui.QWidget):
def uuu init uuu(self,parent=None):
超级(MyWindow,self)。\uuuuu init\uuuuuu(父级)
self.dateEdit=QtGui.QDateEdit(self)
self.lbl=QtGui.QLabel()
self.dateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
self.dateEdit.setMaximumDate(QtCore.QDate(7999,12,28))
self.dateEdit.setMaximumTime(QtCore.QTime(23,59,59))
self.dateEdit.setCalendarPopup(True)
布局=QGridLayout()
layout.addWidget(self.dateEdit,0,0)
layout.addWidget(self.lbl,0,1)
self.setLayout(布局)
self.connect(self.dateEdit,SIGNAL(“dateChanged(QDate)”),self.updateUi)
#或新样式:
#self.dateEdit.dateChanged.connect(self.updateUi)
def updateUi(自我):
date1=self.dateEdit.date()
self.lbl.setText(date1.toString())
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=QtGui.QApplication(sys.argv)
app.setApplicationName('MyWindow')
main=MyWindow()
main.show()
sys.exit(app.exec_())
我建议使用,因为它更易于编写和阅读:
self.dateEdit.dateChanged.connect(self.onDateChanged)
信号定义为无效日期更改(const QDate&,其中QDate
为新日期。因此,插槽应如下所示:
def onDateChanged(self,newDate):
print("The new date is "+newDate.toString())
另一方面,您不需要使用两个
import*
(请参阅)。只需将QGridLayout()
替换为QtGui.QGridLayout()
,代码就可以在没有它们的情况下运行。我建议使用,因为它更易于编写和阅读:
self.dateEdit.dateChanged.connect(self.onDateChanged)
信号定义为无效日期更改(const QDate&,其中QDate
为新日期。因此,插槽应如下所示:
def onDateChanged(self,newDate):
print("The new date is "+newDate.toString())
另一方面,您不需要使用两个
import*
(请参阅)。只需将QGridLayout()
替换为QtGui.QGridLayout()
,代码就可以在没有它们的情况下运行。谢谢你的新代码,我想日期()行之前的文本太多了。代码现在可以正常工作了,谢谢!谢谢你的新代码,我想在date()行之前的文本太多了。代码现在可以正常工作了,谢谢!