鱼C论坛

 找回密码
 立即注册
楼主: 凊风

[已解决]资产管理系统求教~~

  [复制链接]
 楼主| 发表于 2024-5-14 22:21:55 | 显示全部楼层
FishC 发表于 2024-5-14 15:17
你可以使用QComboBox的`setStyleSheet()`方法来设置字体颜色。下面是一个示例:

请问['12', '34', '56', '78', '9']这样的列表如何拼接成

123456789?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-14 22:22:02 | 显示全部楼层
凊风 发表于 2024-05-14 22:21
请问这样的列表如何拼接成

123456789?


你可以使用`join()`方法将列表中的元素拼接在一起。下面是一个示例:

  1. my_list = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
  2. result = ''.join(my_list)
  3. print(result)  # 输出: 123456789
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 07:52:20 | 显示全部楼层
FishC 发表于 2024-5-14 22:22
你可以使用`join()`方法将列表中的元素拼接在一起。下面是一个示例:

请问Python可以每天定时把xlsx发给163邮箱吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 07:52:38 | 显示全部楼层
凊风 发表于 2024-05-22 07:52
请问Python可以每天定时把xlsx发给163邮箱吗?


是的,Python可以实现定时将xlsx文件发送到163邮箱。这需要涉及到以下几个步骤:

1. 使用第三方库如`smtplib`和`email`模块来编写发送邮件的代码。

2. 使用`datetime`模块或第三方库`schedule`来设置定时任务,在指定时间自动发送邮件。

3. 将xlsx文件作为附件添加到邮件中。

以下是一个简单的示例代码:

  1. import smtplib
  2. from email.mime.text import MIMEText
  3. from email.mime.application import MIMEApplication
  4. from email.mime.multipart import MIMEMultipart
  5. import datetime
  6. import schedule
  7. import time

  8. def send_email():
  9.     # 设置邮件参数
  10.     sender = '你的163邮箱账号@163.com'
  11.     receiver = '目标邮箱@163.com'
  12.     subject = 'Daily Report'
  13.     body = '这是一份每日报告,附件为xlsx文件。'

  14.     # 创建邮件对象
  15.     msg = MIMEMultipart()
  16.     msg['Subject'] = subject
  17.     msg['From'] = sender
  18.     msg['To'] = receiver

  19.     # 添加邮件正文
  20.     msg.attach(MIMEText(body, 'plain'))

  21.     # 添加xlsx文件附件
  22.     with open('report.xlsx', 'rb') as f:
  23.         xlsx_attachment = MIMEApplication(f.read(), _subtype='xlsx')
  24.         xlsx_attachment.add_header('Content-Disposition', 'attachment', filename='report.xlsx')
  25.         msg.attach(xlsx_attachment)

  26.     # 发送邮件
  27.     with smtplib.SMTP('smtp.163.com', 25) as smtp:
  28.         smtp.login(sender, '你的163邮箱授权码')
  29.         smtp.send_message(msg)

  30. # 每天早上8点发送邮件
  31. schedule.every().day.at("08:00").do(send_email)

  32. while True:
  33.     schedule.run_pending()
  34.     time.sleep(1)
复制代码


这段代码使用`smtplib`和`email`模块来发送邮件,使用`schedule`模块来设置每天早上8点的定时任务。你需要将`sender`和`receiver`的邮箱地址以及163邮箱的授权码填写正确。运行此代码后,它会每天早上8点自动将`report.xlsx`文件发送到目标邮箱。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 15:05:02 | 显示全部楼层
FishC 发表于 2024-5-22 07:52
是的,Python可以实现定时将xlsx文件发送到163邮箱。这需要涉及到以下几个步骤:

1. 使用第三方库如`s ...

能不能用Pyside6定义一个函数,从身份证号来判断性别和年龄?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:05:30 | 显示全部楼层
凊风 发表于 2024-05-22 15:05
能不能用Pyside6定义一个函数,从身份证号来判断性别 ...


当然可以!以下是一个使用Pyside6定义函数的示例,根据身份证号判断性别和年龄:

  1. from PySide6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QLineEdit, QPushButton
  2. from datetime import datetime

  3. def calculate_age(id_card):
  4.     birth_year = int(id_card[6:10])
  5.     current_year = datetime.now().year
  6.     age = current_year - birth_year
  7.     return age

  8. def calculate_gender(id_card):
  9.     gender_code = int(id_card[-2])
  10.     if gender_code % 2 == 0:
  11.         gender = "女"
  12.     else:
  13.         gender = "男"
  14.     return gender

  15. class MainWindow(QWidget):
  16.     def __init__(self):
  17.         super().__init__()
  18.         self.setWindowTitle("身份证信息")
  19.         self.layout = QVBoxLayout()
  20.         
  21.         self.id_label = QLabel("身份证号:")
  22.         self.id_input = QLineEdit()
  23.         
  24.         self.gender_label = QLabel("性别:")
  25.         self.gender_output = QLabel()
  26.         
  27.         self.age_label = QLabel("年龄:")
  28.         self.age_output = QLabel()
  29.         
  30.         self.calculate_button = QPushButton("计算")
  31.         self.calculate_button.clicked.connect(self.calculate_information)
  32.         
  33.         self.layout.addWidget(self.id_label)
  34.         self.layout.addWidget(self.id_input)
  35.         self.layout.addWidget(self.gender_label)
  36.         self.layout.addWidget(self.gender_output)
  37.         self.layout.addWidget(self.age_label)
  38.         self.layout.addWidget(self.age_output)
  39.         self.layout.addWidget(self.calculate_button)
  40.         
  41.         self.setLayout(self.layout)
  42.         
  43.     def calculate_information(self):
  44.         id_card = self.id_input.text()
  45.         gender = calculate_gender(id_card)
  46.         age = calculate_age(id_card)
  47.         
  48.         self.gender_output.setText(gender)
  49.         self.age_output.setText(str(age))
  50.         

  51. if __name__ == "__main__":
  52.     app = QApplication([])
  53.     window = MainWindow()
  54.     window.show()
  55.     app.exec()
复制代码


以上代码创建了一个简单的窗口应用程序,包含一个输入框用于输入身份证号码,以及一个按钮用于触发计算。当用户点击按钮时,程序会调用 `calculate_information` 函数来计算性别和年龄,并将结果显示在窗口上。

请注意,这仅是一个示例,仅通过身份证号的后两位数字来判断性别,没有考虑其他情况(如校验码等)。在实际使用中,请确保你的逻辑更加准确和完善。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 15:07:18 | 显示全部楼层
FishC 发表于 2024-5-22 15:05
当然可以!以下是一个使用Pyside6定义函数的示例,根据身份证号判断性别和年龄:

请问这句话是什么意思?
“请注意,这仅是一个示例,仅通过身份证号的后两位数字来判断性别,没有考虑其他情况(如校验码等)”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:09:31 | 显示全部楼层
凊风 发表于 2024-05-22 15:07
请问这句话是什么意思?
“请注意,这仅是一个示例, ...


这句话的意思是,上面提供的示例代码仅仅适用于通过身份证号的后两位数字来简单判断性别,而没有考虑到身份证号其他部分的信息,例如校验码等。在实际应用中,判断性别和年龄需要更加全面和准确的算法,不能仅仅依赖于身份证号的后两位数字。因此,如果你要开发一个真正可靠的身份证相关功能,建议使用更加专业和完善的验证库或算法。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 15:50:05 | 显示全部楼层
FishC 发表于 2024-5-22 15:09
这句话的意思是,上面提供的示例代码仅仅适用于通过身份证号的后两位数字来简单判断性别,而没有考虑到 ...

请问你有更加专业和完善的验证库或算法吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 15:50:20 | 显示全部楼层
凊风 发表于 2024-05-22 15:50
请问你有更加专业和完善的验证库或算法吗?


当然!对于身份证号的验证,我们可以使用Python中的第三方库,比如`id-validator`。这个库提供了全面的身份证号验证功能,包括校验码、地区、出生日期等。

首先,你需要安装该库。打开终端或命令提示符,运行以下命令:

  1. pip install id-validator
复制代码


安装完成后,你可以使用以下代码验证身份证号:

  1. from id_validator import validator

  2. def get_gender_and_age(id_number):
  3.     info = validator.get_info(id_number)
  4.     gender = '男' if info.gender == 'M' else '女'
  5.     age = info.age
  6.     return gender, age


  7. id_number = '身份证号'  # 将此处替换为实际的身份证号
  8. gender, age = get_gender_and_age(id_number)
  9. print("性别:", gender)
  10. print("年龄:", age)
复制代码


这样,你就可以得到更准确和完善的性别和年龄信息了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 16:37:29 | 显示全部楼层
FishC 发表于 2024-5-22 15:50
当然!对于身份证号的验证,我们可以使用Python中的第三方库,比如`id-validator`。这个库提供了全面的 ...

请问Pyside6中,按钮文本自动回行(自动调整大小)是哪个命令?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 16:37:43 | 显示全部楼层
凊风 发表于 2024-05-22 16:37
请问Pyside6中,按钮文本自动回行(自动调整大小)是 ...


在Pyside6中,可以使用`setWordWrap(True)`来实现按钮文本的自动换行。

下面是一个示例代码,用于创建一个具有自动换行文本的按钮:

  1. from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton

  2. app = QApplication([])
  3. window = QMainWindow()

  4. button = QPushButton("这是一个非常长的按钮文本,当文本超出按钮大小时会自动换行", window)
  5. button.setWordWrap(True)

  6. window.setCentralWidget(button)
  7. window.show()

  8. app.exec()
复制代码


在上面的代码中,我们创建了一个按钮,并通过`setWordWrap(True)`方法将按钮文本设置为自动换行。当按钮大小不足以显示整个文本时,文本会自动换行以适应按钮大小。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 16:39:45 | 显示全部楼层
FishC 发表于 2024-5-22 16:37
在Pyside6中,可以使用`setWordWrap(True)`来实现按钮文本的自动换行。

下面是一个示例代码,用于创 ...

但我在Qt Designer的按钮“属性编辑器”中为什么找不到setWordWrap这一项呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 16:39:58 | 显示全部楼层
凊风 发表于 2024-05-22 16:39
但我在Qt Designer的按钮“属性编辑器”中为什么找不 ...


在 Qt Designer 中,按钮的文本自动回行(自动调整大小)是通过设置按钮的大小策略来实现的,而不是通过直接设置 `setWordWrap` 属性。

可以按照以下步骤进行操作:

1. 选择你想要自动回行的按钮。
2. 在属性编辑器中,找到按钮的 `sizePolicy` 属性。
3. 单击 `sizePolicy` 属性旁边的下拉箭头,展开详细设置。
4. 找到 `Horizontal Policy` 和 `Vertical Policy` 两个选项。你可以将它们设置为 `Preferred` 或者 `Expanding`,以便按钮能够根据文本内容自动调整大小。

这样设置后,当文本超出按钮尺寸时,按钮将自动调整大小以容纳全部文本,并自动进行换行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 16:43:47 | 显示全部楼层
FishC 发表于 2024-5-22 16:39
在 Qt Designer 中,按钮的文本自动回行(自动调整大小)是通过设置按钮的大小策略来实现的,而不是通 ...

我的需求是:按钮大小不变,按钮的文本自动调整大小和回行来适应按钮......
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 16:44:01 | 显示全部楼层
凊风 发表于 2024-05-22 16:43
我的需求是:按钮大小不变,按钮的文本自动调整大小和 ...


哦,我明白你的需求了。实现按钮文本自动调整大小和回行来适应按钮的效果,可以通过设置按钮的样式表(StyleSheet)来实现。

下面是一个示例代码,演示了如何使用样式表来实现按钮文本自动调整大小和回行:

  1. from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
  2. from PySide6.QtCore import Qt

  3. app = QApplication([])

  4. # 创建主窗口
  5. window = QMainWindow()
  6. window.resize(400, 200)

  7. # 创建按钮
  8. button = QPushButton('这是一个很长很长的按钮文本', window)
  9. button.setStyleSheet('QPushButton {text-align: center; padding: 3px; word-wrap: break-word;}')

  10. # 设置按钮大小策略,保持按钮大小不变
  11. button.setSizePolicy(QPushButton.SizePolicy.Fixed, QPushButton.SizePolicy.Fixed)

  12. # 设置按钮文本自动调整大小和回行
  13. button.setFixedSize(button.sizeHint())

  14. window.show()

  15. app.exec()
复制代码


在上述代码中,我们使用了`QPushButton`的样式表(StyleSheet)来设置按钮的样式,其中包括了`word-wrap: break-word;`来实现文本自动回行的效果。

这样,按钮的文本将会根据按钮的大小自动调整大小和回行,以适应按钮。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 16:46:00 | 显示全部楼层
FishC 发表于 2024-5-22 16:44
哦,我明白你的需求了。实现按钮文本自动调整大小和回行来适应按钮的效果,可以通过设置按钮的样式表( ...

在Qt Designer的按钮“属性编辑器”中要如何实现呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 16:47:16 | 显示全部楼层
凊风 发表于 2024-05-22 16:46
在Qt Designer的按钮“属性编辑器”中要如何实现呢?


在Qt Designer的属性编辑器中,是无法直接设置按钮的样式表的。但你可以通过以下步骤实现按钮文本自动调整大小和回行的效果:

1. 在Qt Designer中选择按钮,然后在“属性编辑器”中找到“objectName”属性,给按钮设置一个唯一的命名,比如"myButton"。

2. 保存你的界面设计文件(通常是.ui文件),比如命名为"mainwindow.ui"。

3. 在你的Python代码中导入Pyside6的相关类库,并加载你的界面设计文件:

  1. from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget
  2. from PySide6.QtUiTools import QUiLoader

  3. app = QApplication([])
  4. window = QMainWindow()

  5. # 加载界面设计文件
  6. loader = QUiLoader()
  7. ui_file = QFile("mainwindow.ui")
  8. ui_file.open(QFile.ReadOnly)
  9. window = loader.load(ui_file)
  10. ui_file.close()

  11. # 获取按钮对象
  12. button = window.findChild(QPushButton, "myButton")

  13. # 设置样式表
  14. button.setStyleSheet("QPushButton {"
  15.                      "text-align: center; "
  16.                      "font-weight: bold; "
  17.                      "text-wrap: true; "
  18.                      "}")

  19. window.show()
  20. app.exec()
复制代码


这样,通过设置按钮的样式表,你可以实现按钮文本的自动调整大小和回行来适应按钮的效果。记得将"mainwindow.ui"替换为你保存的界面设计文件的路径。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-22 17:49:35 | 显示全部楼层
FishC 发表于 2024-5-22 16:47
在Qt Designer的属性编辑器中,是无法直接设置按钮的样式表的。但你可以通过以下步骤实现按钮文本自动 ...

请问能否写一个函数,把一句话中每一个汉字拼音首字母取出来转换为大写字母拼凑成一句话。

如“云南省玉溪市红塔区北城街道高桥村委会”,

转换成“YNSYXSHTQGQCWH”.


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-22 17:49:47 | 显示全部楼层
凊风 发表于 2024-05-22 17:49
请问能否写一个函数,把一句话中每一个汉字拼音首字母 ...


当然可以!你可以使用Python的拼音库(比如pypinyin)来实现这个功能。下面是一个示例函数,可以实现将中文句子的每个汉字的拼音首字母转换为大写字母并拼接成一句话的功能:

  1. import pypinyin

  2. def get_initials(sentence):
  3.     pinyin_list = pypinyin.lazy_pinyin(sentence)
  4.     initials = [p[0][0].upper() for p in pinyin_list if p[0].isalpha()]
  5.     return ''.join(initials)

  6. sentence = "云南省玉溪市红塔区北城街道高桥村委会"
  7. result = get_initials(sentence)
  8. print(result)
复制代码


这段代码首先导入了`pypinyin`库,然后定义了一个名为`get_initials`的函数。这个函数接收一个中文句子作为参数,在函数内部使用`pypinyin.lazy_pinyin`方法将句子转换为拼音列表。

然后通过遍历拼音列表,取每个拼音的首字母,并将它们转换为大写字母。最后将所有转换后的首字母拼接为一句话,并返回结果。

在上面的示例中,句子"云南省玉溪市红塔区北城街道高桥村委会"会被转换为"YNSYXSHTQGQCWH"。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 00:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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