Bạn có thể sử dụng phương pháp sau để chuyển đổi tệp văn bản thành tệp CSV bằng Python: Trong phần tiếp theo, bạn sẽ thấy các bước hoàn chỉnh để chuyển đổi tệp văn bản của mình thành CSV. Nếu bạn đã thực hiện như vậy, hãy cài đặt gói Pandas. Bạn có thể sử dụng lệnh sau để cài đặt gói Pandas trong Windows: Tiếp theo, chụp đường dẫn nơi lưu trữ tệp văn bản trên máy tính của bạn. Dưới đây là một ví dụ về đường dẫn mà tệp văn bản [được gọi là ‘sản phẩm_list,] được lưu trữ: C: \ Users \ Ron \ Desktop \ test \ Product_list.txt Bây giờ, bạn sẽ cần chỉ định đường dẫn nơi tệp CSV mới sẽ được lưu. Ví dụ: C: \ Users \ Ron \ Desktop \ test \ new_products.csv Cuối cùng, bạn có thể sử dụng mẫu bên dưới để tạo điều kiện chuyển đổi tệp văn bản của bạn thành CSV: Ví dụ của chúng tôi: Vì vậy, đây là mã hoàn chỉnh để chuyển đổi tệp văn bản thành CSV cho ví dụ của chúng tôi [lưu ý rằng bạn sẽ cần sửa đổi các đường dẫn để phản ánh vị trí nơi các tệp được lưu trữ trên máy tính của bạn]:[note that you’ll need to modify the paths to reflect the location where the files are
stored on your computer]: Khi bạn chạy mã trong Python [được điều chỉnh theo đường dẫn của bạn], bạn sẽ nhận được tệp CSV tại vị trí được chỉ định của bạn.import pandas as pd
read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt']
read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]
Bước 1: Cài đặt gói Pandas
pip install pandas
Bước 2: Chụp đường dẫn nơi lưu trữ tệp văn bản của bạn
Bước 3: Chỉ định đường dẫn nơi tệp CSV mới sẽ được lưu
Bước 4: Chuyển đổi tệp văn bản thành CSV bằng Python
import pandas as pd
read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt']
read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]
import pandas as pd
read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt']
read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]
Hãy tạo một ứng dụng chuyển đổi cơ bản, lấy tệp MP4 và sau đó trích xuất nhạc ra khỏi nó để tạo tệp MP3.
Xin vui lòng bài viết này giả định rằng bạn đã đọc bài viết trước của tôi ở đây
Tạo thư mục dự án
- Tạo một thư mục ở bất cứ đâu trên máy tính của bạn và đặt tên cho nó nói: Bộ chuyển đổi
- Sau đó tạo một thư mục khác trong đó và gọi nó là ui
- Tiếp theo Tạo một tệp bên cạnh nó và đặt tên cho tệp Main.py.
- Bên trong thư mục UI, tạo hai tệp, main.qml và addcomp.qml [addComp.qml bắt đầu bằng chữ viết hoa vì chúng tôi muốn gọi nó bên trong một tệp QML khác]
- Vì vậy, bây giờ cấu trúc thư mục của bạn sẽ thích một cái gì đó như thế này:
Và bên trong thư mục UI của bạn
- converter
- UI
- AddComp.qml
- main.qml
- main.py
Cài đặt pyffmpeg
Chúng tôi sẽ sử dụng thư viện PyffMPEG để xử lý việc chuyển đổi.
Trong thiết bị đầu cuối làm:
>>> pip install pyffmpeg
UI
Hãy tập trung vào UI trước khi chuyển sang phần phụ trợ trong Python.
Mở tệp chính.QML bên trong thư mục UI và sau đó điền vào mã này.
UI/main.qml
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
Mã trên chúng tôi đã tạo các thuộc tính cho
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]1 và ____32 mà chúng tôi sẽ sử dụng sau này. Và sau đó có một addComp thành phần với ID: addComp. Có một Stackview lấp đầy cửa sổ và nó có addComp làm mục ban đầu của nó.
Tiếp theo, hãy mở tệp addcomp.qml và thực hiện tệp đó với mã bên dưới
UI/AddComp.qml
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
import QtQuick.Dialogs
Component {
Rectangle {
ColumnLayout {
anchors.fill: parent
spacing: 0
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: 128
color: "purple"
Text {
anchors {
bottom: parent.bottom
left: parent.left
margins: 12
}
text: "Convert To MP3"
font.pixelSize: 16
color: "white"
}
}
Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
color: "#1e1e1e"
ColumnLayout {
anchors.fill: parent
Rectangle {
id: fn_cont
Layout.fillWidth: true
Layout.preferredHeight: 94
Layout.margins: 24
Layout.alignment: Qt.AlignTop
radius: 12
border.color: "#eee"
color: "#2f2f2f"
visible: true // line 51
Text {
id: fn
padding: 8
width: parent.width
height: parent.height
verticalAlignment: Text.AlignVCenter
text: "C:/folder/filename"
font.pixelSize: 12
color: "white"
}
MouseArea {
id: area
anchors.fill: parent
hoverEnabled: true
onClicked: stack.push[progresscomp] // line 69
onEntered: parent.border.color = "gold"
onExited: parent.border.color = "#eee"
}
}
Button {
Layout.alignment: Qt.AlignBottom | Qt.AlignHCenter
Layout.bottomMargin: 8
text: "Add"
onClicked: f_dialog.open[] background: Rectangle {
implicitWidth: 100
implicitHeight: 32
color: parent.hovered ? Qt.lighter["gold"] : "gold"
radius: 4
}
}
}
}
}
FileDialog {
id: f_dialog
nameFilters: ['Video files[*.mp4]']
onAccepted: {
inputFile = f_dialog.currentFile
fn.text = inputFile
fn_cont.visible = true
}
}
}
}
Trong mã trên, có một thành phần để đảm bảo rằng các mục mặc dù trực quan không hiển thị trừ khi chúng được chỉ định một chế độ xem. . Mã
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]3 của FileDialog đảm bảo rằng chỉ có thể chọn các tệp với .MP4 trong trình chọn tệp. Và sau đó mã còn lại chỉ tạo một dải thẻ và nút tùy chỉnh. Tín hiệu
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]4 gán
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]2 mà chúng tôi đã khai báo trong Main.QML cho tệp hiện tại mà người dùng đã chọn trong trình chọn tệp.
Kết nối với Python
Hãy kết nối UI với Python
Mở tệp Main.py và điền vào mã này
main.py
import sys
from PyQt6.QtGui import QGuiApplication
from PyQt6.QtQml import QQmlApplicationEngine
from PyQt6.QtQuick import QQuickWindow
QQuickWindow.setSceneGraphBackend['software']
app = QGuiApplication[sys.argv]
engine = QQmlApplicationEngine[]
engine.load['UI/main.qml']
engine.quit.connect[app.quit]
sys.exit[app.exec[]]
Mã trên tải UI của chúng tôi [
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]6] vào công cụ ứng dụng QML.
Bây giờ hãy mở dấu nhắc thiết bị đầu cuối hoặc lệnh của bạn và điều hướng đến nơi bạn có tệp dự án của mình
>>> cd converter
Bây giờ từ thiết bị đầu cuối của bạn chạy tệp Python
pip install pandas0
Bây giờ bạn sẽ thấy một cái gì đó như thế này:
Dải thẻ chứa văn bản nói rằng C:/thư mục/tên tệp được đặt để hiển thị đúng, có thể trên dòng 51. Điều này là để bạn có thể nhìn thấy nó.
Nhưng những gì nên xảy ra là; Nếu người dùng thêm tệp MP4 bằng trình chọn tệp, thì dải thẻ hiển thị và văn bản sẽ có đường dẫn đầy đủ của tệp. Vì vậy, hãy thay đổi nó để nói hiển thị: sai
UI/AddComp.qml
pip install pandas1
Bây giờ nó không hiển thị, chỉ là nút Thêm là. Trong tín hiệu
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]4 của FileDialog, chúng tôi đặt nó thành hiển thị, để hiển thị sau khi người dùng chọn tệp MP4.
Tiếp theo, thêm một thành phần để hiển thị một cửa sổ tiến trình.
Bên trong thư mục UI, hãy tạo một tệp mới và đặt tên cho nó tiến hành thu nhập.QML [nên bắt đầu bằng chữ cái viết hoa].
Vì vậy, cấu trúc thư mục của bạn sẽ trông như thế này.
pip install pandas2
Mở tệp ProgressComp.QML và điền vào mã này
UI/ProgressComp.qml
pip install pandas3
Mã trên cho thấy một thanh tiến trình được đặt thành
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]8 bây giờ, nhưng chúng tôi sẽ thay đổi nó để hiển thị tiến trình thực sự trong tương lai. Nó cũng chạy phương thức chuyển đổi của lớp chuyển đổi [mặc dù chúng tôi vẫn chưa tạo ra điều này] khi thành phần tải lên.
Thêm cái này vào Main.QML để nó có thể được gọi dễ dàng bằng ngăn xếp
UI/main.qml
pip install pandas4
Bạn sẽ nhận ra rằng trên dòng 69 của tệp AddComp.QML, chúng tôi đang đẩy ProgressComp vào ngăn xếp trên nhấp chuột của dải thẻ.line 69 of the AddComp.qml file we are pushing the progresscomp to the stack on click of the card strip.
UI/AddComp.qml
pip install pandas5
Điều đó có nghĩa là UI sẽ lật vào trang ProgressComp. Đây là lý do tại sao dải thẻ là vô hình cho đến khi nó có một bộ URL tệp thích hợp. Bởi vì phương thức
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]9 được gọi khi ProgressComp tải lên, nó sẽ gây ra lỗi nếu người dùng nhấp nhầm vào nó và khiến phương thức
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]9 chạy trong khi không có URL nào được đặt.
Mặc dù tệp đang chuyển đổi, chúng tôi sẽ hiển thị cho người dùng một thanh tiến trình và sau đó khi nó được thực hiện, chúng tôi sẽ hiển thị một trang thông tin, điều đó chỉ nói xong, vì vậy người dùng biết, việc chuyển đổi đã được thực hiện.
Hãy tạo một tệp bên cạnh ProgressComp.QML và gọi nó là InfoComp.QML.
Vì vậy, cấu trúc tệp của bạn sẽ trông giống như thế này:
pip install pandas6
Bây giờ hãy mở infocomp.qml và điền vào mã này.
UI/InfoComp.qml
pip install pandas7
Mã trên tương tự như của tất cả các thành phần khác nhưng ở đây chúng ta có một văn bản với đường viền hình chữ nhật màu xanh lá cây vừa nói đã được thực hiện !.
Chúng ta cũng sẽ thêm nó vào main.qml
UI/main.qml
pip install pandas8
InfoComp sẽ chỉ được hiển thị sau khi tệp đã được chuyển đổi để chúng tôi phải báo hiệu lại khi chúng tôi hoàn thành việc chuyển đổi.
Bây giờ giao diện người dùng đã hoàn thành..
Chạy mã
pip install pandas0
Và bạn sẽ thấy một cái gì đó như thế này
Nhấp vào nút Thêm và tải lên tệp MP4 và bạn sẽ thấy dải thẻ với URL của tệp MP4 bắt đầu bằng 'Tệp: ///'. Giao thức tệp này trái ngược với các giao thức khác như ' //' và 'ftp: //'.
Tạo lớp chuyển đổi
Bây giờ chúng ta hãy tạo một lớp để xử lý chuyển đổi
Hãy đặt mã chuyển đổi của chúng tôi vào một tệp mới để chúng tôi có thể tách nó khỏi mã khởi động và mã của chúng tôi sẽ trông sạch hơn và dễ đọc hơn.
Tạo một tên tệp mới Func.py.
Cấu trúc thư mục của bạn sẽ trông giống như thế này:
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]0
Bây giờ hãy mở Func.py và điền vào mã này
func.py
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]1
Mã trên tạo ra một khe được gọi là
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]9. Nó có một input_file, sau đó tạo tên tệp âm thanh đầu ra bằng cách chỉ thay đổi tiện ích mở rộng tệp. Sau đó, chúng tôi gọi FFMPEG và sau đó gọi phương thức
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]9 của FFMPEG và chuyển các tệp đầu vào và đầu ra cho nó. Đây là tất cả những gì cần thiết để thực hiện chuyển đổi cơ bản của một tệp từ định dạng này sang định dạng khác. Nhưng chúng tôi đang tập trung vào việc trích xuất MP3 từ MP4 cho bây giờ.
Làm cho lớp
- converter
- UI
- AddComp.qml
- main.qml
- main.py
3 có sẵn trong main.py.Ngoài ra, chúng tôi đặt thuộc tính QML
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]1 thành đối tượng
- converter
- UI
- AddComp.qml
- main.qml
- main.py
3 của chúng tôi.main.py
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]2
Trong mã trên, chúng tôi nhập lớp
- converter
- UI
- AddComp.qml
- main.qml
- main.py
3 của chúng tôi từ mô -đun FUNC của chúng tôi, ngay bên cạnh Main.py. Chúng tôi tạo một đối tượng import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]9 ra khỏi lớp
- converter
- UI
- AddComp.qml
- main.qml
- main.py
3 và sau đó đặt nó thành thuộc tính QML import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]1 được khai báo trong UI/main.QML bằng cách sử dụng
>>> pip install pyffmpeg
0.Chạy cái này với:
pip install pandas0
Khi UI bật lên, nhấp vào nút Thêm để thêm tệp video.
Tiếp theo Nhấp vào dải thẻ hiển thị URL tệp.
Bạn nhận ra rằng mặc dù chúng tôi có
>>> pip install pyffmpeg
1 trong tệp ProgressComp.QML và thông báo nhật ký >>> pip install pyffmpeg
2 đã được in, có nghĩa là mã Python, chúng tôi đã không thấy ProgressComp và UI ngừng phản hồi nếu bạn cố gắng tương tác với nó.Đây là vấn đề mà luồng giải quyết.
Sửa chữa
Hãy kết hợp chuỗi vào lớp chuyển đổi.
QT có các lớp luồng riêng, Python cũng có các lớp luồng trong thư viện tiêu chuẩn của nó. Nhưng trong đó có một thư viện tiêu chuẩn có sẵn, chúng tôi sử dụng nó thay thế. Vì vậy, chúng tôi sẽ sử dụng lớp luồng riêng của Python.
Trong tệp FUNC.PY Cập nhật tệp để sử dụng luồng khi gọi phương thức chuyển đổi.
func.py
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]4
Trong mã trên, chúng tôi đã chuyển mã chuyển đổi cũ sang phương thức nhấn mạnh mới. Lưu ý đây không phải là một khe. Và phương thức chuyển đổi cũ là khe QT đã được biến thành một người tạo luồng và khởi động. Khi nó được gọi bởi QML, nó sẽ tạo một luồng với phương thức nhấn mạnh là mục tiêu và sau đó bắt đầu nó. Daemon được đặt thành True có nghĩa là luồng mới được tạo sẽ thoát ngay lập tức ứng dụng chính [luồng chính] thoát ra. Đây là mã tốt để đảm bảo rằng chúng tôi không có chủ đề không được quản lý vẫn đang chạy trên máy tính của người dùng ngay cả sau khi ứng dụng đã thoát.
Bây giờ nếu bạn chạy nó
pip install pandas0
Bạn sẽ phát hiện ra rằng luồng đã giải quyết vấn đề đóng băng và lần này bạn thấy ProgressComp xuất hiện, vẫn ở trạng thái không xác định và giao diện người dùng đáp ứng. Nhưng sau khi chuyển đổi, chúng ta vẫn cần thực hiện cú hích cuối cùng đến Infocomp.
Đối với điều đó, chúng tôi sẽ sử dụng tín hiệu.
Trong mô -đun FUNC.Py, kết hợp tín hiệu.
func.py
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]6
Trong mã trên, chúng tôi tạo một tín hiệu theo tên
>>> pip install pyffmpeg
3. Tín hiệu này được phát ra bằng phương thức _Convert trên dòng 30 khi chuyển đổi được thực hiện.Bây giờ trong tệp chính.QML, hãy tạo trình xử lý tín hiệu
UI/main.qml
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]7
Trong mã trên, chúng tôi thêm các kết nối và nhắm mục tiêu thuộc tính
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]1 đã được đặt trong Python vào đối tượng
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]9. Chúng tôi cũng đã tạo ra một trình xử lý tín hiệu tín hiệu
>>> pip install pyffmpeg
3. Khi chúng tôi nhận được một tín hiệu như vậy, sau đó chúng tôi thực hiện cú hích cuối cùng của Infocomp vào ngăn xếp.Bây giờ toàn bộ điều được thực hiện. Và tầm quan trọng và thực hiện của luồng được bạn hiểu.Threading are understood by You.
Đi xa hơn
Bây giờ chúng ta hãy sử dụng thông tin tiến trình để cập nhật thanh tiến trình.
Mở Func.py và cập nhật mã như dưới đây.
Func.py
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]8
Trong mã trên, chúng tôi tạo một tín hiệu mới
>>> pip install pyffmpeg
7 phát ra một int. Sau đó, chúng tôi tạo một phương thức >>> pip install pyffmpeg
8 phát ra tín hiệu. Lý do là FFMPEG sẽ yêu cầu một chức năng mà nó có thể gọi và vượt qua phần trăm tiến độ bất cứ khi nào tiến trình thay đổi. Vì vậy, bạn cũng có thể thấy rằng trên dòng 30, chúng tôi đặt >>> pip install pyffmpeg
9 của FFMPEG thành phương thức >>> pip install pyffmpeg
8 của chúng tôi. Ngoài ra, lưu ý rằng chúng ta cần đặt import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
1 thành import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
2 trước khi chúng ta có thể nhận được thông tin tiến độ.Tiếp theo, trong Main.QML nhận tín hiệu
>>> pip install pyffmpeg
7UI/main.qml
import pandas as pd read_file = pd.read_csv [r'Path where the Text file is stored\File name.txt'] read_file.to_csv [r'Path where the CSV will be saved\File name.csv', index=None]9
Trong mã trên, chúng tôi đã tạo một trình xử lý tín hiệu
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
4 lấy INT phát ra bởi >>> pip install pyffmpeg
7 làm phần trăm và sau đó đặt nó thành import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
6Bây giờ hãy cập nhật ProgressComp để sử dụng
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
6UI/progressComp.qml
import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]0
Trong mã trên, chúng tôi đã đặt các giá trị
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
8 và import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
9 cho import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
import QtQuick.Dialogs
Component {
Rectangle {
ColumnLayout {
anchors.fill: parent
spacing: 0
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: 128
color: "purple"
Text {
anchors {
bottom: parent.bottom
left: parent.left
margins: 12
}
text: "Convert To MP3"
font.pixelSize: 16
color: "white"
}
}
Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
color: "#1e1e1e"
ColumnLayout {
anchors.fill: parent
Rectangle {
id: fn_cont
Layout.fillWidth: true
Layout.preferredHeight: 94
Layout.margins: 24
Layout.alignment: Qt.AlignTop
radius: 12
border.color: "#eee"
color: "#2f2f2f"
visible: true // line 51
Text {
id: fn
padding: 8
width: parent.width
height: parent.height
verticalAlignment: Text.AlignVCenter
text: "C:/folder/filename"
font.pixelSize: 12
color: "white"
}
MouseArea {
id: area
anchors.fill: parent
hoverEnabled: true
onClicked: stack.push[progresscomp] // line 69
onEntered: parent.border.color = "gold"
onExited: parent.border.color = "#eee"
}
}
Button {
Layout.alignment: Qt.AlignBottom | Qt.AlignHCenter
Layout.bottomMargin: 8
text: "Add"
onClicked: f_dialog.open[] background: Rectangle {
implicitWidth: 100
implicitHeight: 32
color: parent.hovered ? Qt.lighter["gold"] : "gold"
radius: 4
}
}
}
}
}
FileDialog {
id: f_dialog
nameFilters: ['Video files[*.mp4]']
onAccepted: {
inputFile = f_dialog.currentFile
fn.text = inputFile
fn_cont.visible = true
}
}
}
}
0 và đã xóa thuộc tính import pandas as pd read_file = pd.read_csv [r'C:\Users\Ron\Desktop\Test\Product_List.txt'] read_file.to_csv [r'C:\Users\Ron\Desktop\Test\New_Products.csv', index=None]8. Chúng tôi cũng đã đặt giá trị thành
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
ApplicationWindow {
visible: true
width: 800
height: 500
title: "Converter"
property QtObject converter
property string inputFile
AddComp { id: addcomp }
StackView {
id: stack
anchors.fill: parent
initialItem: addcomp
}
}
6.Tất cả đã được làm xong
Tệp hoàn chỉnh Main.py
Tệp Func.py hoàn chỉnh
.
Nhiều tài nguyên có thể được tìm thấy trên:
- Pyqt/pyside
- QML - Evileg.com, QT chính thức tài liệu
- Tư vấn kỹ thuật phần mềm