国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一個用python PyQT寫的背單詞小程序

這篇具有很好參考價值的文章主要介紹了一個用python PyQT寫的背單詞小程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

主要用到了QGridLayout, QTableWidget文章來源地址http://www.zghlxwxcb.cn/news/detail-759161.html

import sys
import os
import pandas as pd
from PyQt5.QtWidgets import *


class DataFrameExample(QWidget):
	def __init__(self):
		super().__init__()
		self.initUI()

	def initUI(self):
		self.setWindowTitle('DataFrame Example')
		self.setGeometry(100, 100, 800, 400)

		self.layout = QGridLayout()  # 使用網(wǎng)格布局

		# 左側(cè)文本框
		self.text_edit = QTextEdit()
		self.layout.addWidget(self.text_edit, 0, 0, 2, 1)  # 放大文本框所占的行數(shù)

		# 中間按鈕
		self.button_layout = QVBoxLayout()  # 按鈕布局

		self.show_button = QPushButton('Show Next Row')
		self.show_button.clicked.connect(self.showNextRow)
		self.button_layout.addWidget(self.show_button)

		self.explain_button = QPushButton('Show Explain')
		self.explain_button.clicked.connect(self.showExplain)
		self.button_layout.addWidget(self.explain_button)

		self.move_to_table_button = QPushButton('Move to Table')
		self.move_to_table_button.clicked.connect(self.moveToTable)
		self.button_layout.addWidget(self.move_to_table_button)

		self.save_table_button = QPushButton('Save Unknown Word')
		self.save_table_button.clicked.connect(self.save_unknown_words)
		self.button_layout.addWidget(self.save_table_button)

		self.back_button = QPushButton('Back to Last Word')
		self.back_button.clicked.connect(self.back2LastRow)
		self.button_layout.addWidget(self.back_button)

		# 添加一個空白的占位符,使按鈕布局豎著排列
		self.button_layout.addStretch()

		self.layout.addLayout(self.button_layout, 0, 1, 2, 1)  # 放大按鈕布局所占的行數(shù)

		# 右側(cè)表格
		self.table = QTableWidget()
		self.table.setColumnCount(1)
		self.table.setHorizontalHeaderLabels(['Data'])
		self.layout.addWidget(self.table, 0, 2, 2, 1)  # 放大表格所占的行數(shù)

		# self.data = pd.DataFrame({'A': range(1, 101), 'B': range(101, 201), 'C': range(201, 301), 'D': range(301, 401)})
		self.data = self.load_data()
		self.row_index = -1

		self.setLayout(self.layout)
		self.show()

	def showNextRow(self):
		self.row_index += 1
		if self.row_index < len(self.data):
			self.text_edit.clear()
			row_data = self.data.iloc[self.row_index, 2]
			self.text_edit.setPlainText(row_data)
			print("word {} : {}".format(self.row_index, row_data))
		else:
			print("learn completed!")

	def back2LastRow(self):
		self.row_index -= 1
		if self.row_index < len(self.data):
			self.text_edit.clear()
			row_data = self.data.iloc[self.row_index, 2]
			self.text_edit.setPlainText(row_data)
			print("word {} : {}".format(self.row_index, row_data))
		else:
			print("error")

	def showExplain(self):
		row_data = self.data.iloc[self.row_index].to_string()
		self.text_edit.setPlainText(row_data)

	def moveToTable(self):
		current_text = self.data.iloc[self.row_index, 2]
		if current_text:
			rowPosition = self.table.rowCount()
			self.table.insertRow(rowPosition)
			newItem = QTableWidgetItem(current_text)
			self.table.setItem(rowPosition, 0, newItem)

		tmp = pd.DataFrame(self.data.iloc[self.row_index, :]).T
		word = tmp.iloc[0, 2]
		if word not in self.df_learn.values:
			self.df_learn = pd.concat([self.df_learn, tmp], ignore_index=True)
			print("{} 加入生詞表\n".format(word))

	def load_data(self):
		df = pd.read_excel('/Users/username/Desktop/N1Words.xlsx', sheet_name=0)
		# random_sample = df.sample(n=10, random_state=1)		# 設(shè)置隨機(jī)種子,使結(jié)果可重復(fù)
		random_sample = df.sample(n=150)

		folder_path = "/Users/username/Desktop"  # 將此路徑替換為你要檢查的文件夾的實(shí)際路徑
		# 指定要檢查的文件名
		file_name = "unknown_word.xlsx"  # 將此文件名替換為你要檢查的文件名
		# 使用 os.path.join() 將文件夾路徑和文件名拼接成完整的文件路徑
		self.file_path = os.path.join(folder_path, file_name)
		# 使用 os.path.exists() 來檢查文件是否存在
		if os.path.exists(self.file_path):
			print(f"文件 '{file_name}' 存在于文件夾 '{folder_path}' 中.")
			self.df_learn = pd.read_excel(self.file_path, sheet_name=0)
		else:
			print(f"文件 '{file_name}' 不存在于文件夾 '{folder_path}' 中.")
			self.df_learn = pd.DataFrame(columns=df.columns)

		return random_sample

	def save_unknown_words(self):
		self.df_learn.to_excel(self.file_path, index=False)
		print("file saved!")


if __name__ == '__main__':
	app = QApplication(sys.argv)
	ex = DataFrameExample()
	sys.exit(app.exec_())

到了這里,關(guān)于一個用python PyQT寫的背單詞小程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 制作一個串口助手 | python + pyqt5

    制作一個串口助手 | python + pyqt5

    目錄 一、背景 1.1、開發(fā)流程圖 二、前提 2.1、關(guān)于環(huán)境 2.2、關(guān)于源碼 三、步驟 3.1、使用pyqt創(chuàng)建一個.ui界面并生成.py文件 3.2、創(chuàng)建兩個.py文件,一個用來繼承ui界面生成的.py類,一個用來實(shí)現(xiàn)各種功能 3.3、各個功能代碼 3.3.1、打開串口 3.3.2、關(guān)閉串口 3.3.3、獲取串口號 3.

    2024年02月05日
    瀏覽(26)
  • 【Python】pyqt5入門教程之第一個UI界面

    【Python】pyqt5入門教程之第一個UI界面

    1.pyqt5工具安裝 (1)使用pip工具安裝PyQt5工具: (2)安裝Qt Designer圖形界面開發(fā)工具: 安裝完成后所在路徑 (3)安裝QtDesigner 安裝完成后所在路徑 designer.exe路徑 啟動QtDesigner 2.第一個QT窗口程序 Pycharm配置 找到py文件,右鍵External Tool — QTDesigner—就可以啟動 QTDesigner .ui文件轉(zhuǎn)換

    2024年02月15日
    瀏覽(26)
  • Python創(chuàng)建一個GUI(PyQt5)選擇文件的界面獲取文件路徑
  • pyqt5+python子域名掃描程序

    pyqt5+python子域名掃描程序

    其中.txt文件,主要運(yùn)用python爬蟲進(jìn)行探測,另外用headers bing.com的方式在2023年6月開始不能用了,我也不知道為什么

    2024年01月20日
    瀏覽(18)
  • 最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個ui界面測試

    最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個ui界面測試

    參考鏈接:最新版本VSCode配置Python、PyQt5、QtDesigner環(huán)境并創(chuàng)建一個ui界面測試 一、安裝Python3 PyQt5所支持的python版本是從3.5開始的,因此安裝的Python3版本必須大于3.5。 我安裝的位置是C:PythonPython38。 參見真小白入門Pyhton的安裝 二、安裝PyQt5以及PyQt5-tools(這里面就有designer了

    2024年02月08日
    瀏覽(19)
  • PyQt應(yīng)用程序中的多線程:使用Qt還是Python線程?

    PyQt應(yīng)用程序中的多線程:使用Qt還是Python線程?

    多線程模塊能夠更加高效得完成任務(wù),但是在PyQt 應(yīng)用程序中實(shí)現(xiàn)多線程可以使用 Qt 的線程模塊(QThread)或者 Python 的 threading 模塊。兩者各有優(yōu)劣,具體選擇取決于項(xiàng)目需求和個人偏好。下面我們將以案例來說明兩種模塊具體得優(yōu)缺點(diǎn)。 1、問題背景 在 PyQt 應(yīng)用程序中,編

    2024年02月22日
    瀏覽(31)
  • 【PyQt5】構(gòu)建強(qiáng)大的Python圖形用戶界面應(yīng)用程序 -- 入門指南

    【PyQt5】構(gòu)建強(qiáng)大的Python圖形用戶界面應(yīng)用程序 -- 入門指南

    ? 作者主頁: 愛笑的男孩。的博客_CSDN博客-深度學(xué)習(xí),活動,python領(lǐng)域博主 愛笑的男孩。擅長深度學(xué)習(xí),活動,python,等方面的知識,愛笑的男孩。關(guān)注算法,python,計(jì)算機(jī)視覺,圖像處理,深度學(xué)習(xí),pytorch,神經(jīng)網(wǎng)絡(luò),opencv領(lǐng)域. https://blog.csdn.net/Code_and516?type=blog 個人簡介:打工人。 持續(xù)分

    2024年02月15日
    瀏覽(27)
  • python3GUI--仿做一個網(wǎng)易云音樂(第三彈v2.0)By:PyQt5(附下載地址)

    python3GUI--仿做一個網(wǎng)易云音樂(第三彈v2.0)By:PyQt5(附下載地址)

    傳送門: python3GUI–仿做一個網(wǎng)易云音樂By:PyQt5(附下載地址) python3GUI–仿做一個網(wǎng)易云音樂(第二彈v1.5)By:PyQt5(附下載地址) 本篇為模仿網(wǎng)易云音樂2.0篇,是本系列最后一篇,本篇繼續(xù)在v1.5基礎(chǔ)上進(jìn)行改進(jìn),盡最大努力模仿網(wǎng)易云音樂播放器UI,本篇將全方面介紹咱們的“

    2024年02月15日
    瀏覽(25)
  • Arduino開發(fā)ESP32-CAM模塊 & 使用Python-PyQt5編寫圖傳.exe獨(dú)立程序

    Arduino開發(fā)ESP32-CAM模塊 & 使用Python-PyQt5編寫圖傳.exe獨(dú)立程序

    1.1 驅(qū)動ESP32-CAM 筆者使用Arduino編寫ESP32-CAM的驅(qū)動程序,版本為1.8.19。在較新的版本中,Arduino的UI風(fēng)格發(fā)生了變化,不過下面配置的功能基本保留,讀者注意辨別其中的異同之處。 1.1.1 在Arduino中配置開發(fā)環(huán)境 1.首先,我們需要在Arduino中配置ESP32開發(fā)板的開發(fā)環(huán)境。打開Arduino,

    2024年02月04日
    瀏覽(28)
  • PyQt5制作一個簡單的登錄界面

    PyQt5制作一個簡單的登錄界面

    最近在學(xué)習(xí)GUI設(shè)計(jì),分享做的一些小項(xiàng)目。 這篇文我們講一下如何制作一個簡單的登錄界面。 如下: 1、QtDesigner里繪制UI界面并設(shè)置屬性 布局根據(jù)個人喜好,部件顏色、字體、背景屬性在styleSheet里設(shè)置。 2、材料轉(zhuǎn)換(將.ui文件轉(zhuǎn).py,.qrc文件轉(zhuǎn)_rc.py) 通過PyUIC和PyRcc即可完成。

    2024年02月03日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包