鱼C论坛

 找回密码
 立即注册
查看: 2333|回复: 7

【菜菜,大神捞捞】我的槽函数不接收信号,我头要秃了

[复制链接]
发表于 2023-4-1 17:17:30 | 显示全部楼层
你好,根据你的代码和描述,我发现有一些问题和建议。请参考以下修改建议:

1、首先,你的 HSJCQuery.py 文件里的 if __name__ == '__HSJCQuery__': 应该改为 if __name__ == '__main__':。

2、将 HSJCQueryWindow.py 和 HSJCQuery.py 文件合并,然后将 HSJCQuery.py 里的 hsjc_query 函数定义在 HSJCQueryWindow 类中,

并将该函数重命名为 hsjc_query_slot。同时,hsjc_query_slot 函数内部不能有多个 return 语句,请将两个查询的返回值合并到一个变量中。

修改后的 HSJCQuery.py 文件示例:

  1. # ...
  2. # 定义HSJCQueryWindow类
  3. class HSJCQueryWindow(HSJCQueryWindow.Ui_MainWindow, QMainWindow):
  4.     def __init__(self):        #定义HSJCQueryWindow窗口
  5.         super(HSJCQueryWindow, self).__init__()
  6.         self.setupUi(self)

  7.     def hsjc_query_slot(self):    #定义查询功能
  8.         start_date = self.dateTimeEdit.text()
  9.         end_date = self.dateTimeEdit_2.text()
  10.         txt_query = self.lineEdit.text()
  11.         sql_outp = "SELECT SUM(CHARGES) FROM OUTP_BILL_ITEMS WHERE VISIT_DATE >= {startdate} AND VISIT_DATE <= {enddate} AND PATTERN LIKE '%{txtquery}%'".format(startdate=start_date,enddate=end_date,txtquery=txt_query)          #这里可能还有语法错误,到时候断点调试
  12.         Dbconnect.cursor.execute(sql_outp)
  13.         results_outp = Dbconnect.cursor.fetchall()

  14.         sql_inp = "SELECT SUM(CHARGES) FROM INP_BILL_DETAIL WHERE BILLING_DATE_TIME >= {startdate} AND BILLING_DATE_TIME <= {enddate} AND ITEM_NAME LIKE '%{txtquery}}%'".format(startdate=start_date,enddate=end_date,txtquery=txt_query)
  15.         Dbconnect.cursor.execute(sql_inp)
  16.         results_inp = Dbconnect.cursor.fetchall()
  17.         
  18.         return results_outp, results_inp

  19. if __name__ == '__main__':
  20.     app = QApplication(sys.argv)
  21.     # 实例化HSJCQueryWindow类
  22.     hsjcquery_window = HSJCQueryWindow()
  23.     hsjcquery_window.show()
  24.     # 将hsjc_query_slot函数与查询按钮绑定
  25.     hsjcquery_window.queryButton.clicked.connect(hsjcquery_window.hsjc_query_slot)
  26.     result_outp, result_inp = hsjcquery_window.hsjc_query_slot()
  27.     hsjcquery_window.tab_outp_text.setText(str(result_outp))
  28.     hsjcquery_window.tab_inp_text.setText(str(result_inp))
  29.     app.exec()
  30.     sys.exit(app.exec())
复制代码


3、最后,请确保在点击查询按钮时,hsjc_query_slot 函数被正确执行。你可以通过添加 print() 语句在函数内部来检查是否有正确执行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-25 03:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表