# time: 2020/05/21
#author: xiaohong
# 執行環境: os: windows 10
# python: 3.7
# 功能: 選擇檔案,把檔案內容做成詞云,並顯示
效果為:
主程式( tl_001.py): 用來實現介面下每個控制項的功能
import sys
import time
import os
import sqlite3
from pyqt5.qtwidgets import *
from pyqt5 import qtgui, qtcore, qtwidgets
# from pyqt5.qtwidgets import qtablewidget, qprogressbar, qlineedit, qcombobox, qframe, qtablewidgetitem
from pyqt5.qtcore import *
from pyqt5.qtgui import *
# 這個test_pyqt是ui檔案對應的py檔案的檔名
from ui_qt_001 import ui_qt001
import wordcloud #pip install wordcloud
import jieba #pip install jieba
#呼叫 qt 設計的介面對應的類
class w001(qdialog):
def __init__(self, parent=none):
super(w001, self).__init__(parent)
self.child = ui_qt001()
self.child.setupui(self)
self.child.btn_select_file.clicked.connect(self.select_file)
self.child.btn_read.clicked.connect(self.read_txt)
self.child.btn_cloud.clicked.connect(self.gen_word_cloud)
# 設立函式,來取得當前時間
def get_sysdate(self):
now = time.strftime("%y%m%d %h%m%s", time.localtime(time.time()))
# print(now)
return now
def select_file(self):
filename, filetype = qfiledialog.getopenfilename(self, "選擇檔案", "/", "all files (*);;txt files (*.txt)") # user 選擇路徑來找到
# print(filename, filetype) # 列印檔案全部路徑(包括檔名和字尾名)和檔案型別
self.child.t_file.settext(filename) #把檔案的路徑寫在 text 上
def read_txt(self):
filename=self.child.t_file.text()
with open(filename,'r',encoding='gbk') as f:
self.child.te_text.settext(f.read())
def gen_word_cloud(self):
#取得檔名
filename=self.child.t_file.text()
#分離出檔案路徑及檔名
if filename=='':
filepath='d://'
tempfilename=self.get_sysdate()+'.png'
else:
(filepath,tempfilename)=os.path.split(filename)
(tempfilename,extension)=os.path.splitext(tempfilename)
tempfilename=tempfilename+self.get_sysdate()+'.png'
file=os.path.join(filepath,tempfilename)
self.child.t_aim_file.settext(file)
# print(file)
#以上完成檔名
# 詞云都是詞語 顯示
txt=self.child.te_text.toplaintext() #獲取內容
# print(txt)
w = wordcloud.wordcloud(width=1000,height=700,background_color='white',contour_width=1,font_path="c:/windows/fonts/stfangso.ttf")
txt_list = jieba.lcut(txt)
string = "".join(txt_list)
# print(string)
w.generate(string)
w.to_file(file)
#把file顯示出來
#顯示self.child.lbl_pic.setpixmap(qpixmap(file)) # 在label上顯示
self.child.lbl_pic.setscaledcontents (true) # 讓自適應label大小
if __name__ == "__main__":
my001 = w001()
my001.show()
qt5的設計指令碼(qt_001.ui)
<?xml version="1.0" encoding="utf-8"?>qt00100
720595
詞云01
203054
12
檔案路徑
8030481
20
5603031
23
...
59030
7523
read
3031075
23
生成詞云
3070631
231
70350531
211
qframe::box
1textlabel
110310481
20
Qt5 嵌入式裝置QT5動態庫編譯,QT5移植
perl 5.8 or later python 2.7 or later c compiler supporting the c 98 standard sdk提供 編譯套裝 sudo apt get install build essential sudo apt get install git...
qt 5 小練習 建立無邊框介面
首先,我們得在相應的建構函式中寫入無邊框的 例如博主想要mywidget變為無邊框 setwindowflags qt framelesswindowhint qt windowstaysontophint 設定邊框狀態,沒邊框之後,必須要自己寫乙個滑鼠事件來拖動它 setmousetracking...
QT5程式設計小記
1.今天在用qt寫串列埠小例項的時候碰到qt5 c2001 常量中有換行符等問題,因為是qt5,很多qt4的解決方案是無效的的。解決方案 用記事本開啟你的cpp檔案,另存為utf8格式 2.之前一直使用qdebug qstring 串列埠開始寫資料 後台列印一直亂碼 解決方案 qdebug qstr...