鱼C论坛

 找回密码
 立即注册
查看: 1310|回复: 3

Pyside6求教~~

[复制链接]
发表于 2024-3-29 15:17:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
能不能用Pyside6实现:

系统在用户指定的"self.File_Path"路径中自动生成一个123.txt文本文件;

系统自动将"self.File_Path"路径中self.Base_Workbook的sheet_name按顺序逐一写入此123.txt中(每个sheet_name又分别命名为sheet_name1:、sheet_name2:、sheet_name3:来分为3行,行与行之间以“。”来分隔)

然后打开123.txt,提示用户在sheet_name1:、sheet_name2:、sheet_name3:后录入规则(其中如sheet_name1后可能有多行规则录入,sheet_name2后可能有多行规则录入,sheet_name3后可能有多行规则录入,多行规则之间以“;”来分隔)

当录入完毕后,系统储存此123.txt文档以备用。

本帖被以下淘专辑推荐:

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

使用道具 举报

发表于 2024-3-29 15:18:19 | 显示全部楼层
当然可以!下面是使用Pyside6实现你描述的功能的示例代码:

  1. import sys
  2. from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QTextEdit, QVBoxLayout, QWidget
  3. from PySide6.QtCore import QFile, QTextStream

  4. class MainWindow(QMainWindow):
  5.     def __init__(self):
  6.         super().__init__()

  7.         self.setWindowTitle("自动生成文档")
  8.         self.resize(400, 300)

  9.         self.central_widget = QWidget()
  10.         self.setCentralWidget(self.central_widget)

  11.         self.layout = QVBoxLayout(self.central_widget)

  12.         self.generate_button = QPushButton("生成文档")
  13.         self.generate_button.clicked.connect(self.generate_document)
  14.         self.layout.addWidget(self.generate_button)

  15.         self.text_edit = QTextEdit()
  16.         self.layout.addWidget(self.text_edit)

  17.     def generate_document(self):
  18.         file_path = self.text_edit.toPlainText().strip()
  19.         if file_path:
  20.             with open(file_path, "w") as f:
  21.                 for i, sheet_name in enumerate(self.Base_Workbook.sheet_names()):
  22.                     f.write(f"sheet_name{i+1}:\n")
  23.                     # 在这里你可以加入用户录入规则的代码
  24.                     f.write("录入规则1;录入规则2;录入规则3\n")
  25.                     f.write("。\n")
  26.             print("文档已生成!")

  27. if __name__ == "__main__":
  28.     app = QApplication(sys.argv)
  29.     window = MainWindow()
  30.     window.show()
  31.     sys.exit(app.exec())
复制代码


这段代码创建了一个简单的PySide6窗口,其中有一个文本编辑框用于输入文件路径,然后有一个按钮用于生成文档。在 `generate_document` 方法中,会按照你的描述逐一将工作簿中的表名写入到文件中,并添加用户录入的规则。你可以根据实际情况修改代码中的路径和规则录入部分。

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

使用道具 举报

 楼主| 发表于 2024-3-29 15:18:56 | 显示全部楼层
FishC 发表于 2024-3-29 15:18
当然可以!下面是使用Pyside6实现你描述的功能的示例代码:

能不能写成一个函数让我来调用?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-29 15:19:13 | 显示全部楼层
凊风 发表于 2024-03-29 15:18
能不能写成一个函数让我来调用?


当然可以!下面是一个将代码封装成函数的示例:

  1. import sys
  2. from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QTextEdit, QVBoxLayout, QWidget
  3. from PySide6.QtCore import QFile, QTextStream

  4. def generate_document(file_path, workbook):
  5.     with open(file_path, "w") as f:
  6.         for i, sheet_name in enumerate(workbook.sheet_names()):
  7.             f.write(f"sheet_name{i+1}:\n")
  8.             # 在这里你可以加入用户录入规则的代码
  9.             f.write("录入规则1;录入规则2;录入规则3\n")
  10.             f.write("。\n")
  11.     print("文档已生成!")

  12. class MainWindow(QMainWindow):
  13.     def __init__(self):
  14.         super().__init__()
  15.         self.setWindowTitle("自动生成文档")
  16.         self.resize(400, 300)
  17.         self.central_widget = QWidget()
  18.         self.setCentralWidget(self.central_widget)
  19.         self.layout = QVBoxLayout(self.central_widget)
  20.         self.generate_button = QPushButton("生成文档")
  21.         self.generate_button.clicked.connect(self.generate_document)
  22.         self.layout.addWidget(self.generate_button)
  23.         self.text_edit = QTextEdit()
  24.         self.layout.addWidget(self.text_edit)
  25.         
  26.     def generate_document(self):
  27.         file_path = self.text_edit.toPlainText().strip()
  28.         if file_path:
  29.             generate_document(file_path, self.Base_Workbook)

  30. if __name__ == "__main__":
  31.     app = QApplication(sys.argv)
  32.     window = MainWindow()
  33.     window.show()
  34.     sys.exit(app.exec())
复制代码


在这个示例中,我将生成文档的代码封装到了 `generate_document` 函数中。你可以单独调用这个函数,并传入文件路径和工作簿对象作为参数。

在 `MainWindow` 类中的 `generate_document` 方法中,会根据用户输入的文件路径和工作簿对象调用 `generate_document` 函数来生成文档。

这样,你就可以在其他地方直接调用 `generate_document` 函数,而不需要依赖于窗口界面。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 12:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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