class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.ui.slider.setMaximum(200) self.ui.scrollBar.setMaximum(200) self.ui.progressBar.setMaximum(200) self.ui.slider.valueChanged.connect(self.do_valueChanged) self.ui.scrollBar.valueChanged.connect(self.do_valueChanged) ## ========由connectSlotsByName() 自动连接的槽函数================= def on_radio_Percent_clicked(self): ##“显示格式--百分比” self.ui.progressBar.setFormat("%p%") def on_radio_Value_clicked(self): ##“显示格式--当前值” self.ui.progressBar.setFormat("%v") @pyqtSlot(bool) ##“textVisible”复选框 def on_chkBox_Visible_clicked(self, checked): self.ui.progressBar.setTextVisible(checked) @pyqtSlot(bool) ##"InvertedAppearance"复选框 def on_chkBox_Inverted_clicked(self, checked): self.ui.progressBar.setInvertedAppearance(checked) ## ========自定义槽函数==================================== def do_valueChanged(self, value): ##slider和scrollBar的valueChanged信号的响应 self.ui.progressBar.setValue(value)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建Ui对象 self.ui.setupUi(self) #构造UI self.ui.slider.setMaximum(200) #设置输入的最大范围,setMinimum是最小范围 self.ui.scrollBar.setMaximum(200) self.ui.progressBar.setMaximum(200) self.ui.slider.valueChanged.connect(self.do_valueChanged) #自定义连接 self.ui.scrollBar.valueChanged.connect(self.do_valueChanged) ##==========自定义功能函数========== def do_valueChanged(self, value): self.ui.progressBar.setValue(value) ##==========事件处理函数=========== ##==========由connectSlotsByName()自动关联的槽函数==== def on_radio_Percent_clicked(self): #显示百分比 self.ui.progressBar.setFormat('%p%') def on_radio_Value_clicked(self): self.ui.progressBar.setFormat('%v') @pyqtSlot(bool) def on_chkBox_Visible_clicked(self, checked): self.ui.progressBar.setTextVisible(checked) @pyqtSlot(bool) def on_chkBox_Inverted_clicked(self, checked): self.ui.progressBar.setInvertedAppearance(checked)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## ========由connectSlotsByName() 自动连接的槽函数================= def on_radio_Percent_clicked(self): ##“显示格式--百分比” pass def on_radio_Value_clicked(self): ##“显示格式--当前值” pass @pyqtSlot(bool) ##“textVisible”复选框 def on_chkBox_Visible_clicked(self, checked): pass @pyqtSlot(bool) ##"InvertedAppearance"复选框 def on_chkBox_Inverted_clicked(self, checked): pass ## ========自定义槽函数==================================== def do_valueChanged(self, value): ##slider和scrollBar的valueChanged信号的响应 pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建Ui对象 self.ui.setupUi(self) #构造UI ##==========自定义功能函数========== ##==========事件处理函数=========== ##==========由connectSlotsByName()自动关联的槽函数==== def on_btnGetTime_clicked(self): ''' curDateTime获取系统时间,值为PyQt5.QtCore.QDateTime(2020, 3, 25, 15, 48, 17, 173) curDateTime.time()/curDateTime.date()是QDateTime中的时间部分和日期部分 curDateTime.toString()是将QDateTime时间格式 :return: ''' curDateTime = QDateTime.currentDateTime() print(curDateTime) self.ui.timeEdit.setTime(curDateTime.time()) self.ui.editTime.setText(curDateTime.toString("hh:mm:ss")) #设置字符串显示格式 self.ui.dateEdit.setDate(curDateTime.date()) self.ui.editDate.setText( curDateTime.toString("yyyy-MM-dd")) #设置字符串显示格式 self.ui.dateTimeEdit.setDateTime(curDateTime) self.ui.editDateTime.setText( curDateTime.toString("yyyy-MM-dd hh:mm:ss")) #设置字符串显示格式 def on_calendarWidget_selectionChanged(self): ''' 设置日历组件 data类型是PyQt5.QtCore.QDate(2020, 3, 3) :return: ''' data = self.ui.calendarWidget.selectedDate() print(data) self.ui.editCalendar.setText( data.toString("yyyy年MM月dd日")) #设置字符串在QLineEdit组件中的显示格式 def on_btnSetTime_clicked(self): tmStr = self.ui.editTime.text() #得到的是一个字符串 #fromString(str, str) #fromString(str, format: Qt.DateFormat = Qt.TextDate) tm = QTime.fromString(tmStr, "hh:mm:ss") #格式化获取的QlineEdit中的时间,格式要与目标函数的格式一致 self.ui.timeEdit.setTime(tm) def on_btnSetDate_clicked(self): dtStr = self.ui.editDate.text() dt = QDate.fromString(dtStr, "yyyy-MM-dd") self.ui.dateEdit.setDate(dt) def on_btnSetDateTime_clicked(self): dttmStr = self.ui.editDateTime.text() dttm = QDateTime.fromString(dttmStr, "yyyy-MM-dd hh:mm:ss") self.ui.dateTimeEdit.setDateTime(dttm)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.boy = Human("Boy", 16) self.boy.nameChanged.connect(self.do_nameChanged) self.boy.ageChanged.connect(self.do_ageChanged_int) self.boy.ageChanged[str].connect(self.do_ageChanged_str) ## 由connectSlotsByName() 自动与组件的信号连接的槽函数 def on_sliderSetAge_valueChanged(self, value): self.boy.setAge(value) def on_btnSetName_clicked(self): hisName = self.ui.editNameInput.text() self.boy.setName(hisName) ## 自定义槽函数 def do_nameChanged(self, name): self.ui.editNameHello.setText("Hello," + name) @pyqtSlot(int) def do_ageChanged_int(self, age): self.ui.editAgeInt.setText(str(age)) @pyqtSlot(str) def do_ageChanged_str(self, info): self.ui.editAgeStr.setText(info)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== def on_btnCalculate_clicked(self): ##"计算总价"按钮 num = int(self.ui.editCount.text()) price = float(self.ui.editPrice.text()) total = num * price self.ui.editTotal.setText("%.2f" % total) @pyqtSlot(int) ##"数量"SpinBox def on_spinCount_valueChanged(self, count): price = self.ui.spinPrice.value() self.ui.spinTotal.setValue(count * price) @pyqtSlot(float) ##"单价" DoubleSpinBox def on_spinPrice_valueChanged(self, price): count = self.ui.spinCount.value() self.ui.spinTotal.setValue(count * price)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## ==========由connectSlotsByName() 自动连接的槽函数==================== def on_btnIniItems_clicked(self): ##“初始化列表”按钮 pass def on_btnClearItems_clicked(self): ##“清除列表”按钮 pass @pyqtSlot(bool) ##“可编辑” CheckBox def on_chkBoxEditable_clicked(self, checked): pass @pyqtSlot(str) ##“简单的ComboBox”的当前项变化 def on_comboBox_currentIndexChanged(self, curText): pass def on_btnIni2_clicked(self): ##有用户数据的comboBox2的初始化 pass @pyqtSlot(str) ##当前项变化 def on_comboBox2_currentIndexChanged(self, curText): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== @pyqtSlot() ##播放文件 def on_btnEffect_File_clicked(self): url = QUrl.fromLocalFile("Ak47.wav") player = QSoundEffect(self) player.setLoopCount(2) #播放循环次数 player.setSource(url) #设置源文件 player.play() @pyqtSlot() ##播放资源文件的内容 def on_btnEffect_Resource_clicked(self): url = QUrl.fromLocalFile(":/Wave/sound/blast.wav") player = QSoundEffect(self) player.setLoopCount(2) player.setSource(url) player.play() #无法播放资源文件 @pyqtSlot() ##播放文件 def on_btnSound_File_clicked(self): QSound.play("fire2.wav") QSound.play("machinegun.wav") @pyqtSlot() ##播放资源文件 def on_btnSound_Resource_clicked(self): QSound.play(":/Wave/sound/machinegun.wav") #不能播放
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== @pyqtSlot() ##播放文件 def on_btnEffect_File_clicked(self): pass @pyqtSlot() ##播放资源文件的内容 def on_btnEffect_Resource_clicked(self): pass @pyqtSlot() ##播放文件 def on_btnSound_File_clicked(self): pass @pyqtSlot() ##播放资源文件 def on_btnSound_Resource_clicked(self): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## 由connectSlotsByName() 自动与组件的信号连接的槽函数 def on_sliderSetAge_valueChanged(self, value): pass def on_btnSetName_clicked(self): pass ## 自定义槽函数 def do_nameChanged(self, name): pass @pyqtSlot(int) def do_ageChanged_int(self, age): pass @pyqtSlot(str) def do_ageChanged_str(self, info): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## =================自定义功能函数================================= def __getDropActionIndex(self, actionType): pass def __getDropActionType(self, index): pass def __refreshToUI(self): ##属性显示到界面 pass ## ==================event处理函数================================= def eventFilter(self, watched, event): pass return super().eventFilter(watched, event) ## ==========由connectSlotsByName()自动连接的槽函数=============== @pyqtSlot() def on_radio_Source_clicked(self): ##listSource pass @pyqtSlot() def on_radio_List_clicked(self): ##listWidget pass @pyqtSlot() def on_radio_Tree_clicked(self): ##treeWidget pass @pyqtSlot() def on_radio_Table_clicked(self): ##tableWidget pass ##============用于属性设置的4个组件的槽函数=================== @pyqtSlot(bool) def on_chkBox_AcceptDrops_clicked(self, checked): pass @pyqtSlot(bool) def on_chkBox_DragEnabled_clicked(self, checked): pass @pyqtSlot(int) def on_combo_Mode_currentIndexChanged(self, index): pass @pyqtSlot(int) def on_combo_DefaultAction_currentIndexChanged(self, index): pass
class Widget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数 self.ui = Ui_Widget() #创建ui对象 self.ui.setupUi(self) #构造ui对象 #设置窗口背景透明 self.setWindowFlags(Qt.FramelessWindowHint) self.setAttribute(Qt.WA_TranslucentBackground)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建Ui对象 self.ui.setupUi(self) #构造UI ##==========自定义功能函数========== ##==========事件处理函数=========== ##==========由connectSlotsByName()自动关联的槽函数==== ''' editInput:为QLineEdit组件名称 setAlignment():设置对齐方式 ''' def on_btnAlign_Left_clicked(self): #居左 self.ui.editInput.setAlignment(Qt.AlignLeft) def on_btnAlign_Center_clicked(self): #居中 self.ui.editInput.setAlignment(Qt.AlignCenter) def on_btnAlign_Right_clicked(self): #居右 self.ui.editInput.setAlignment(Qt.AlignRight) @pyqtSlot(bool) def on_btnFont_Bold_clicked(self, checked): #粗体 font = self.ui.editInput.font() #获取字体对象 font.setBold(checked) #checked=True,即当参数为真时,setBold()将font设置为粗体 self.ui.editInput.setFont(font) #设置字体 @pyqtSlot(bool) def on_btnFont_Italic_clicked(self, checked): #斜体 font = self.ui.editInput.font() font.setItalic(checked) self.ui.editInput.setFont(font) @pyqtSlot(bool) def on_btnFont_UnderLine_clicked(self, checked): #下划线 font = self.ui.editInput.font() font.setUnderline(checked) self.ui.editInput.setFont(font) @pyqtSlot(bool) def on_chkBox_Readonly_clicked(self, checked): #只读 self.ui.editInput.setReadOnly(checked) @pyqtSlot(bool) def on_chkBox_Enable_clicked(self, checked): #锁定QLineEdit组件 self.ui.editInput.setEnabled(checked) @pyqtSlot(bool) def on_chkBox_ClearButton_clicked(self, checked): #聚焦后清除原有内容 self.ui.editInput.setClearButtonEnabled(checked)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.setAcceptDrops(True) self.ui.plainTextEdit.setAcceptDrops(True) #不处理drop,由父窗体处理 self.ui.LabPic.setAcceptDrops(False) self.ui.LabPic.setScaledContents(True) #图片适应Label大小 ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== ## ==================event处理函数================================= def dragEnterEvent(self, event): self.ui.plainTextEdit.clear() self.ui.plainTextEdit.appendPlainText( "dragEnterEvent事件 mimeData()->formats()") for strLine in event.mimeData().formats(): #mimeData().formats() self.ui.plainTextEdit.appendPlainText(strLine) self.ui.plainTextEdit.appendPlainText( "\ndragEnterEvent事件 mimeData()->urls()") for url in event.mimeData().urls(): # mimeData().urls() self.ui.plainTextEdit.appendPlainText(url.path()) if (event.mimeData().hasUrls()): filename = event.mimeData().urls()[0].fileName() #只有文件名 basename, ext = os.path.splitext(filename) #文件名和后缀 ext = ext.upper() if (ext == ".JPG"): #只接收JPG文件 event.acceptProposedAction() else: event.ignore() else: event.ignore() def dropEvent(self, event): filename = event.mimeData().urls()[0].path() #完整文件名 cnt = len(filename) realname = filename[1:cnt] #去掉最左边的“/” pixmap = QPixmap(realname) self.ui.LabPic.setPixmap(pixmap) event.accept()
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== @pyqtSlot() ##重设模型数据内容 def on_btnList_Reset_clicked(self): pass @pyqtSlot() ##添加项 def on_btnList_Append_clicked(self): pass @pyqtSlot() ##插入项 def on_btnList_Insert_clicked(self): pass @pyqtSlot() ##删除当前项 def on_btnList_Delete_clicked(self): pass @pyqtSlot() ##清空列表 def on_btnList_Clear_clicked(self): pass @pyqtSlot() ##清空文本 def on_btnText_Clear_clicked(self): pass @pyqtSlot() ##显示数据模型的内容 def on_btnText_Display_clicked(self): pass def on_listView_clicked(self,index): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== ## ==================event处理函数================================= def eventFilter(self, watched, event): pass return super().eventFilter(watched, event)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.setWindowTitle("Demo5_3 event()事件拦截") ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== ## ==================event处理函数================================= def event(self,event): pass return super().event(event) def paintEvent(self,event): ##绘制窗口背景图片 pass def resizeEvent(self,event): ##窗体改变大小 pass def closeEvent(self,event): ##窗体关闭时询问 pass ## def keyPressEvent(self,event): def keyReleaseEvent(self,event): pass def hideEvent(self,event): ##窗体最小化时触发 pass def showEvent(self,event): ##窗体显示时触发 pass def mousePressEvent(self,event): ##鼠标左键按下 pass super().mousePressEvent(event)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =======由connectSlotsByName() 自动连接的槽函数======================= def on_btnAlign_Left_clicked(self): ##“居左”按钮 self.ui.editInput.setAlignment(Qt.AlignLeft) def on_btnAlign_Center_clicked(self): ##“居中”按钮 self.ui.editInput.setAlignment(Qt.AlignCenter) def on_btnAlign_Right_clicked(self): ##“居右”按钮 self.ui.editInput.setAlignment(Qt.AlignRight) @pyqtSlot(bool) ##“粗体”按钮 def on_btnFont_Bold_clicked(self,checked): font=self.ui.editInput.font() font.setBold(checked) self.ui.editInput.setFont(font) @pyqtSlot(bool) ##“斜体”按钮 def on_btnFont_Italic_clicked(self,checked): font=self.ui.editInput.font() font.setItalic(checked) self.ui.editInput.setFont(font) @pyqtSlot(bool) ##“下划线”按钮 def on_btnFont_UnderLine_clicked(self,checked): font=self.ui.editInput.font() font.setUnderline(checked) self.ui.editInput.setFont(font) @pyqtSlot(bool) ##"Readonly" 复选框 def on_chkBox_Readonly_clicked(self,checked): self.ui.editInput.setReadOnly(checked) @pyqtSlot(bool) ##"Enabled"复选框 def on_chkbox_Enable_clicked(self,checked): self.ui.editInput.setEnabled(checked) @pyqtSlot(bool) ##"ClearButtonEnabled"复选框 def on_chkBox_ClearButton_clicked(self,checked): self.ui.editInput.setClearButtonEnabled(checked)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## ==========由connectSlotsByName() 自动连接的槽函数==================== def on_btnIniItems_clicked(self): ##“初始化列表”按钮 #设置图标的操作 icon=QIcon(":/icons/images/aim.ico") self.ui.comboBox.clear() #清除列表 provinces=["山东","河北","河南","湖北","湖南","广东"] #列表数据 for i in range(len(provinces)): self.ui.comboBox.addItem(icon,provinces[i]) ## #不设置图标的操作 ## self.ui.comboBox.clear() #清除列表 ## provinces=["山东","河北","河南","湖北","湖南","广东"] #列表数据 ## self.ui.comboBox.addItems(provinces) #直接添加列表,但无法加图标 def on_btnClearItems_clicked(self): ##“清除列表”按钮 self.ui.comboBox.clear() @pyqtSlot(bool) ##“可编辑” CheckBox def on_chkBoxEditable_clicked(self,checked): self.ui.comboBox.setEditable(checked) @pyqtSlot(str) ##“简单的ComboBox”的当前项变化 def on_comboBox_currentIndexChanged(self,curText): self.ui.lineEdit.setText(curText) def on_btnIni2_clicked(self): ##有用户数据的comboBox2的初始化 icon=QIcon(":/icons/images/unit.ico") self.ui.comboBox2.clear() cities={"北京":10, "上海":21, "天津":22, "徐州":516, "福州":591, "青岛":532} #字典数据 for k in cities: self.ui.comboBox2.addItem(icon,k,cities[k]) @pyqtSlot(str) ##当前项变化 def on_comboBox2_currentIndexChanged(self,curText): self.ui.lineEdit.setText(curText) zone=self.ui.comboBox2.currentData() #读取关联数据 if (zone != None): #必须加此判断,因为有可能是None self.ui.lineEdit.setText(curText+":区号=%d"%zone)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.timer = QTimer() #创建定时器 self.timer.stop() #停止 self.timer.setInterval(1000) #定时周期1000ms self.timer.timeout.connect(self.do_timer_timeout) self.counter = QTime() #创建计时器 ## =========由connectSlotsByName() 自动连接的槽函数============= def on_btnStart_clicked(self): ##“开始”按钮 self.timer.start() #开始定时 self.counter.start() #开始计时 self.ui.btnStart.setEnabled(False) self.ui.btnStop.setEnabled(True) self.ui.btnSetIntv.setEnabled(False) def on_btnSetIntv_clicked(self): ##设置定时器的周期 self.timer.setInterval(self.ui.spinBoxIntv.value()) def on_btnStop_clicked(self): ##“停止”按钮 self.timer.stop() #定时器停止 tmMs = self.counter.elapsed() #计时器流逝的毫秒数 ms = tmMs % 1000 #取余数,毫秒 sec = tmMs / 1000 #整秒 timeStr = "流逝的时间:%d 秒,%d 毫秒" % (sec, ms) self.ui.LabElapsedTime.setText(timeStr) self.ui.btnStart.setEnabled(True) self.ui.btnStop.setEnabled(False) self.ui.btnSetIntv.setEnabled(True) ## ==========自定义槽函数================================== def do_timer_timeout(self): ##定时中断响应 curTime = QTime.currentTime() #获取当前时间 self.ui.LCDHour.display(curTime.hour()) self.ui.LCDMin.display(curTime.minute()) self.ui.LCDSec.display(curTime.second())
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== ## ==================event处理函数================================= def dragEnterEvent(self, event): pass def dropEvent(self, event): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建Ui对象 self.ui.setupUi(self) #构造UI self.timer = QTimer() #创建定时器 self.timer.stop() self.timer.setInterval(100) #设定周期 self.timer.timeout.connect(self.do_timer_timeout) self.counter = QTime() ##==========自定义功能函数========== ##==========事件处理函数=========== ##==========由connectSlotsByName()自动关联的槽函数==== def on_btnStart_clicked(self): self.timer.start() self.counter.start() self.ui.btnStart.setEnabled(False) self.ui.btnStop.setEnabled(True) self.ui.btnSetIntv.setEnabled(False) def on_btnStop_clicked(self): self.timer.stop() tmMs = self.counter.elapsed() #计时器经过的时间 ms = tmMs % 1000 #毫秒 sec = tmMs / 1000 #秒 timeStr = "经过的时间:{}秒,{}毫秒".format(sec, ms) self.ui.LabElapsedTime.setText(timeStr) self.ui.btnStart.setEnabled(True) self.ui.btnStop.setEnabled(False) self.ui.btnSetIntv.setEnabled(True) def on_btnSetIntv_clicked(self): self.timer.setInterval(self.ui.spinBoxIntv.value()) ##=========自定义槽函数============ def do_timer_timeout(self, ): curTime = QTime.currentTime() self.ui.LCDHour.display(curTime.hour()) self.ui.LCDMin.display(curTime.minute()) self.ui.LCDSec.display(curTime.second())
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== def on_btnCalculate_clicked(self): ##"计算总价"按钮 pass @pyqtSlot(int) ##"数量"SpinBox def on_spinCount_valueChanged(self, count): pass @pyqtSlot(float) ##"单价" DoubleSpinBox def on_spinPrice_valueChanged(self, price): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui=Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =======由connectSlotsByName() 自动连接的槽函数======================= def on_btnAlign_Left_clicked(self): ##“居左”按钮 pass def on_btnAlign_Center_clicked(self): ##“居中”按钮 pass def on_btnAlign_Right_clicked(self): ##“居右”按钮 pass @pyqtSlot(bool) ##“粗体”按钮 def on_btnFont_Bold_clicked(self,checked): pass @pyqtSlot(bool) ##“斜体”按钮 def on_btnFont_Italic_clicked(self,checked): pass @pyqtSlot(bool) ##“下划线”按钮 def on_btnFont_UnderLine_clicked(self,checked): pass @pyqtSlot(bool) ##"Readonly" 复选框 def on_chkBox_Readonly_clicked(self,checked): pass @pyqtSlot(bool) ##"Enabled"复选框 def on_chkbox_Enable_clicked(self,checked): pass @pyqtSlot(bool) ##"ClearButtonEnabled"复选框 def on_chkBox_ClearButton_clicked(self,checked): pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 self.ui.LabHover.installEventFilter(self) self.ui.LabDBClick.installEventFilter(self) qApp.processEvents() ## =================自定义功能函数================================= ## ==========由connectSlotsByName() 自动连接的槽函数=============== ## ==================event处理函数================================= def eventFilter(self, watched, event): if (watched == self.ui.LabHover): #上面的QLabel组件 if (event.type() == QEvent.Enter): #鼠标光标进入 self.ui.LabHover.setStyleSheet( "background-color: rgb(170, 255, 255);") elif (event.type() == QEvent.Leave): #鼠标光标移出 self.ui.LabHover.setStyleSheet("") self.ui.LabHover.setText("靠近我,点击我") elif (event.type() == QEvent.MouseButtonPress): #鼠标按键按下 self.ui.LabHover.setText("button pressed") elif (event.type() == QEvent.MouseButtonRelease): #鼠标按键释放 self.ui.LabHover.setText("button released") if (watched == self.ui.LabDBClick): #下面的QLabel组件 if (event.type() == QEvent.Enter): self.ui.LabDBClick.setStyleSheet( "background-color: rgb(85, 255, 127);") elif (event.type() == QEvent.Leave): self.ui.LabDBClick.setStyleSheet("") self.ui.LabDBClick.setText("可双击的标签") elif (event.type() == QEvent.MouseButtonDblClick): #鼠标双击 self.ui.LabDBClick.setText("double clicked") return super().eventFilter(watched, event)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =========由connectSlotsByName() 自动连接的槽函数========================= def on_btnGetTime_clicked(self): ## "读取当前日期时间"按钮 pass def on_calendarWidget_selectionChanged(self): ## 日历组件 pass def on_btnSetTime_clicked(self): ##“设置时间”按钮 pass def on_btnSetDate_clicked(self): ##“设置日期”按钮 pass def on_btnSetDateTime_clicked(self): ##“设置日期时间”按钮 pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 pass ## =========由connectSlotsByName() 自动连接的槽函数============= def on_btnStart_clicked(self): ##“开始”按钮 pass def on_btnSetIntv_clicked(self): ##设置定时器的周期 pass def on_btnStop_clicked(self): ##“停止”按钮 pass ## ==========自定义槽函数================================== def do_timer_timeout(self): ##定时中断响应 pass
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建UI对象 self.ui.setupUi(self) #构造UI界面 ## =========由connectSlotsByName() 自动连接的槽函数========================= def on_btnGetTime_clicked(self): ## "读取当前日期时间"按钮 curDateTime = QDateTime.currentDateTime() self.ui.timeEdit.setTime(curDateTime.time()) self.ui.editTime.setText(curDateTime.toString("hh:mm:ss")) self.ui.dateEdit.setDate(curDateTime.date()) self.ui.editDate.setText(curDateTime.toString("yyyy-MM-dd")) self.ui.dateTimeEdit.setDateTime(curDateTime) self.ui.editDateTime.setText( curDateTime.toString("yyyy-MM-dd hh:mm:ss")) def on_calendarWidget_selectionChanged(self): ## 日历组件 date = self.ui.calendarWidget.selectedDate() self.ui.editCalendar.setText(date.toString("yyyy年M月d日")) def on_btnSetTime_clicked(self): ##“设置时间”按钮 tmStr = self.ui.editTime.text() tm = QTime.fromString(tmStr, "hh:mm:ss") self.ui.timeEdit.setTime(tm) def on_btnSetDate_clicked(self): ##“设置日期”按钮 dtStr = self.ui.editDate.text() dt = QDate.fromString(dtStr, "yyyy-MM-dd") self.ui.dateEdit.setDate(dt) def on_btnSetDateTime_clicked(self): ##“设置日期时间”按钮 dttmStr = self.ui.editDateTime.text() dttm = QDateTime.fromString(dttmStr, "yyyy-MM-dd hh:mm:ss") self.ui.dateTimeEdit.setDateTime(dttm)
class QmyWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) #调用父类构造函数,创建窗体 self.ui = Ui_Widget() #创建Ui对象 self.ui.setupUi(self) #构造UI self.resize(280, 150) labHello = QMyLabel(self) labHello.setText("hit me") font = labHello.font() font.setPointSize(14) font.setBold(True) labHello.setFont(font) size = labHello.sizeHint() labHello.setGeometry(70, 60, size.width(), size.height()) labHello.doubleClicked.connect(self.do_doubleClicked) def do_doubleClicked(self): print('标签被双击') def mouseDoubleClickEvent(self, event): print("窗口双击事件响应")
class QmyWidget(QWidget): def __init__(self,parent=None): super().__init__(parent)#调用父类构造函数,创建窗体 self.ui = Ui_Widget()#创建Ui对象 self.ui.setupUi(self)#构造UI