电子设计必备工具软件资料汇总

版权申诉
0 下载量 192 浏览量 更新于2024-10-10 收藏 421KB RAR 举报
资源摘要信息:"jj.rar_JJ_电子设计" 标题分析: 从标题“jj.rar_JJ_电子设计”中可以看出,该压缩包文件名称暗示了其包含的内容与电子设计相关,且可能与某个特定的软件或工具集有关。"rar"是一种常见的压缩文件格式,用于打包和压缩文件,以便于存储和传输。标题中的“JJ”可能是一个特定的标识符,用于区分该资源或作者。 描述分析: 描述中提到“电子工程师学习的最好的学习资料”,表明该压缩包内含的电子设计资料质量很高,对于学习电子工程专业的人员来说具有很高的价值。同时,这些资料被认为是“能够了解电子设计必学软件资料”,这意味着文件中包含的可能是一些常用的电子设计软件的教学资料或教程,以及可能的软件工具本身。描述中的“建议珍藏”表达了该资源的珍贵性和实用性,而“电子设计初学者必备”则强调了该资源对于初学者来说是入门和学习的重要参考资料。 标签分析: 标签“jj 电子设计”进一步证实了文件主题与电子设计相关,并且可能存在与“JJ”这一标识符的特定联系。标签的简洁性表明这可能是一个特定领域的资源集合,专注于电子设计这一狭窄的领域。 压缩包子文件的文件名称列表分析: 由于提供的信息中只有“工具软件”这一项,我们无法得知具体的文件列表内容。但可以推测,压缩包内可能包含了一系列电子设计领域的工具软件,这些软件可能是用于电路设计、模拟、PCB布局、信号分析等电子设计环节的专业软件。常见的电子设计软件包括但不限于Altium Designer、Cadence OrCAD、Multisim、Eagle等。 知识点详细说明: 1. 电子设计软件的重要性:在电子工程领域,设计软件是必不可少的工具,它们可以帮助工程师进行电路设计、仿真、布局规划以及后续的生成制造文件等。熟练掌握这些软件对于提高设计效率和设计质量至关重要。 2. 常用电子设计软件介绍: - Altium Designer:强大的PCB设计软件,集成了电路设计、仿真、布局和制造文件生成等功能。 - Cadence OrCAD:适用于中小规模电路设计的软件,操作简便,易于上手。 - Multisim:主要用于电路仿真,能够模拟电子电路的行为,适用于教育和实验室环境。 - Eagle:一款广泛使用的PCB设计软件,以灵活易用著称。 3. 软件学习路径:对于电子设计初学者来说,学习这些软件需要一定的步骤和方法。首先,需要理解基本的电子原理和电路设计知识,然后通过官方教程或在线课程系统学习软件的使用方法,逐步通过实践来提升设计能力和软件操作水平。 4. 资源的有效利用:学习电子设计不仅仅是学习软件的使用,更关键的是将软件作为一种工具去实现电路的设计和仿真。因此,对于电子设计资料的学习,应注重其与实际设计案例的结合,从而达到理论与实践相结合的最佳学习效果。 5. 电子设计资源的获取和分享:互联网上有许多开源和免费的电子设计资源,例如GitHub、Instructables、EEWeb等网站,提供了大量的设计文件、教程和经验分享。通过这些资源的获取和交流,可以有效地促进学习和提升设计能力。 总结而言,jj.rar_JJ_电子设计是一个对电子工程师,尤其是初学者来说非常有价值的资源包。它可能包含了一系列高质量的学习资料和电子设计工具软件,能够帮助学习者深入理解和掌握电子设计的核心知识和技能。通过珍藏并深入学习这些资料,电子设计初学者能够为未来的职业发展打下坚实的基础。

pyqt5怎么显示class QueryThread(QThread): query_result = pyqtSignal(object) def __init__(self, id): super().__init__() self.id = id def run(self): conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset') cursor = conn.cursor() cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % self.id) result = cursor.fetchone() conn.close() self.query_result.emit(result) # 发送查询结果信号 class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.query_thread = None # 查询线程 def read_data(self): data = self.ser.readline() if data: id = data.decode().strip() if not self.query_thread: # 如果查询线程不存在,则创建并启动 self.query_thread = QueryThread(id) self.query_thread.query_result.connect(self.update_ui) self.query_thread.start() else: self.query_thread.id = id # 如果查询线程已存在,则更新查询ID QTimer.singleShot(100, self.read_data) def update_ui(self, result): if result: self.id_label.setText("员工ID:" + result[0]) self.name_label.setText("姓名:" + str(result[1])) self.six_label.setText("性别:" + result[2]) self.sfz_label.setText("身份证:" + str(result[3])) self.tel_label.setText("电话:" + result[4]) else: self.id_label.setText("员工ID:") self.name_label.setText("姓名:") self.six_label.setText("性别:") self.sfz_label.setText("身份证:") self.tel_label.setText("电话:") def closeEvent(self, event): self.ser.close() if self.query_thread: self.query_thread.quit() self.query_thread.wait()

2023-05-27 上传

class MainWindow(QMainWindow): def init(self, user_id): super().init() self.user_id = user_id self.initUI() # 打开串口 self.ser = serial.Serial('COM7', 9600, timeout=1) def initUI(self): # 创建用于显示员工信息的控件 self.info_label = QLabel("员工信息", self) self.info_label.move(100, 50) self.info_label.setStyleSheet("font-size: 24px; color: black; background-color: #eee; border-radius: 10px;") self.id_label = QLabel("员工ID:", self) self.id_label.move(70, 100) self.id_label.setStyleSheet("font-size: 18px; color: black;") self.name_label = QLabel("姓名:", self) self.name_label.move(70, 150) self.name_label.setStyleSheet("font-size: 18px; color: black;") self.six_label = QLabel("性别:", self) self.six_label.move(70, 200) self.six_label.setStyleSheet("font-size: 18px; color: black;") self.sfz_label = QLabel("身份证:", self) self.sfz_label.move(70, 250) self.sfz_label.setStyleSheet("font-size: 18px; color: black;") self.tel_label = QLabel("电话:", self) self.tel_label.move(70, 300) self.tel_label.setStyleSheet("font-size: 18px; color: black;") self.setFixedSize(800, 500) self.setWindowTitle('员工信息') # 查询员工信息 def query_employee(self, id): conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset') cursor = conn.cursor() cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % id) result = cursor.fetchone() conn.close() return result # 读取数据 def read_data(self): data = self.ser.readline() if data: # 解析数据 id = data.decode().strip() # 查询员工信息 result = self.query_employee(id) if result: # 更新UI界面 self.id_label.setText("员工ID:" + result[0]) self.name_label.setText("姓名:" + str(result[1])) self.six_label.setText("性别:" + result[2]) self.sfz_label.setText("身份证:" + str(result[3])) self.tel_label.setText("电话:" + result[4]) print(result[0],result[1],result[2],result[3],result[4]) else: # 显示空白信息 self.id_label.setText("员工ID:") self.name_label.setText("姓名:") self.six_label.setText("性别:") self.sfz_label.setText("身份证:") self.tel_label.setText("电话:") # 定时读取数据 QTimer.singleShot(100, self.read_data) def closeEvent(self, event): # 关闭串口 self.ser.close()把这个改为多线程

2023-05-27 上传

self.query1_window = QueryResultWindow() def show_query1_result(self): # 查询数据 db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset') cursor = db.cursor() db_sql = """ """ cursor.execute(db_sql) result = cursor.fetchall() db.close() if len(result) == 0: QMessageBox.information(self, "提示", "今日无员工工资记录") return self.query1_window.table_widget.setRowCount(0) self.query1_window.table_widget.setColumnCount(len(result[0])) self.query1_window.table_widget.setHorizontalHeaderLabels( ["员工ID", "员工姓名", "日期", "领取鸡爪重量(KG)", "效率(每小时KG)", "出成率", "基础工资", "重量奖励", "当日总工资"]) for row_num, row_data in enumerate(result): self.query1_window.table_widget.insertRow(row_num) for col_num, col_data in enumerate(row_data): self.query1_window.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data))) self.query1_window.show() class QueryResultWindow(QWidget): def __init__(self): super().__init__() # 设置窗口大小 self.setFixedSize(800, 600) self.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint | Qt.WindowCloseButtonHint) self.download_btn = QPushButton('下载数据', self) self.download_btn.clicked.connect(self.download_data) # 创建表格控件 self.table_widget = QTableWidget() self.table_widget.setEditTriggers(QTableWidget.NoEditTriggers) self.table_widget.setSelectionBehavior(QTableWidget.SelectRows) # 创建窗口布局 layout = QVBoxLayout() layout.addWidget(self.table_widget) self.setLayout(layout)这个界面 怎么添加一个在数据展示界面下载所有数据的按钮

2023-05-24 上传

class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setFixedSize(800, 600) main_layout = QVBoxLayout() central_widget = QWidget() central_widget.setLayout(main_layout) self.setCentralWidget(central_widget) button_layout = QVBoxLayout() button1 = QPushButton('当日员工工资') button1.setFixedSize(200, 50) button1.clicked.connect(self.show_query1_result) button_layout.addStretch() button_layout.addWidget(button1) button_layout.addStretch() layout = QHBoxLayout() layout.addStretch() layout.addLayout(button_layout) layout.addStretch() widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) main_layout.addLayout(button_layout) self.query1_window = QueryResultWindow() def show_query1_result(self): db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset') cursor = db.cursor() db_sql = """ """ cursor.execute(db_sql) result = cursor.fetchall() db.close() if len(result) == 0: QMessageBox.information(self, "提示", "今日无员工工资记录") return self.query1_window.table_widget.setRowCount(0) self.query1_window.table_widget.setColumnCount(len(result[0])) self.query1_window.table_widget.setHorizontalHeaderLabels( ["员工ID", "员工姓名", "日期", "领取鸡爪重量(KG)", "效率(每小时KG)", "出成率", "基础工资", "重量奖励", "当日总工资"]) for row_num, row_data in enumerate(result): self.query1_window.table_widget.insertRow(row_num) for col_num, col_data in enumerate(row_data): self.query1_window.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data))) self.query1_window.show() class QueryResultWindow(QWidget): def __init__(self): super().__init__() self.setFixedSize(800, 600) self.table_widget = QTableWidget() self.table_widget.setEditTriggers(QTableWidget.NoEditTriggers) self.table_widget.setSelectionBehavior(QTableWidget.SelectRows) layout = QVBoxLayout() layout.addWidget(self.table_widget) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) loginWindow = LoginWindow() loginWindow.show() sys.exit(app.exec_()))数据展示页面怎么设置筛选器按ID筛选结果并展示

2023-05-24 上传