導航:首頁 > 編程語言 > python27qt5教程

python27qt5教程

發布時間:2023-02-06 22:42:00

python安裝PyQt5時遇到這個問題該怎麼解決

linux系統下Qt5編譯好的程序在未安裝Qt的系統下運行會報以下錯誤:
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Reinstalling the application may fix this problem.
出現這個錯誤,主要是因為qt5為了在多平台下更方便移植,使用了一種新的技術-----platform abstraction system (QPA),而它中的庫又依賴於Qt5中的一個庫文件libQt5DBus.so.5,所以,只要打包時只要加上這個文件就可以了。
linux下qt5程序打包步驟如下
1、把以下7個庫文件放到/usr/lib目錄下

libQt5Widgets.so.5
libQt5Gui.so.5
libQt5Core.so.5
libicui18n.so.51
libicuuc.so.51
libicudata.so.51
libQt5DBus.so.5
2、拷貝Qt5安裝目錄中的platforms目錄,使它和你的Qt程序同級目錄
現在你可以雙擊你的程序運行了呵呵

㈡ python pyqt5 qthread有哪些方法

用例子說明吧,常用的不多
PyQt中的線程類 QtCore.QThread ,使用時繼承QThread類
啟動界面的線程暫稱為UI線程。界面執行命令時都在自己的UI線程中。
如果在UI線程中執行網路連接和資料庫操作等耗時的操作,界面會被卡住,Windows下有可能會出現「無響應」的警告。
阻塞UI線程會降低用戶體驗和應用穩定性。因此我們可以把耗時操作放在線程中去執行。
QThread代表一個線程,我們可以復寫run函數來執行我們要的操作。
QThread可以使用 QtCore.pyqtSignal 來與界面交互和傳輸數據。
PyQt4 QThread 代碼示例

•Python2.7
# -*- coding: utf-8 -*-
import sys

from PyQt4 import QtCore
from PyQt4.QtCore import QCoreApplication
from PyQt4.QtGui import QWidget, QPushButton, QApplication, QTextBrowser

class TimeThread(QtCore.QThread):
signal_time = QtCore.pyqtSignal(str, int) # 信號

def __init__(self, parent=None):
super(TimeThread, self).__init__(parent)
self.working = True
self.num = 0

def start_timer(self):
self.num = 0
self.start()

def run(self):
while self.working:
print "Working", self.thread()
self.signal_time.emit("Running time:", self.num) # 發送信號
self.num += 1
self.sleep(1)

class TimeDialog(QWidget):
def __init__(self):
super(TimeDialog, self).__init__()
self.timer_tv = QTextBrowser(self)
self.init_ui()
self.timer_t = TimeThread()
self.timer_t.signal_time.connect(self.update_timer_tv)

def init_ui(self):
self.resize(300, 200)
self.setWindowTitle('TimeDialog')
self.timer_tv.setText("Wait")
self.timer_tv.setGeometry(QtCore.QRect(10, 145, 198, 26))
self.timer_tv.move(0, 15)

btn1 = QPushButton('Quit', self)
btn1.setToolTip('Click to quit')
btn1.resize(btn1.sizeHint())
btn1.move(200, 150)
btn1.clicked.connect(QCoreApplication.instance().quit)

start_btn = QPushButton('Start', self)
start_btn.setToolTip("Click to start")
start_btn.move(50, 150)
self.connect(start_btn, QtCore.SIGNAL("clicked()"), self.click_start_btn)

def click_start_btn(self):
self.timer_t.start_timer()

def update_timer_tv(self, text, number):
self.timer_tv.setText(self.tr(text + " " + str(number)))

if __name__ == '__main__':
app = QApplication(sys.argv)
time_dialog = TimeDialog()
time_dialog.show()

sys.exit(app.exec_())

QThread中使用的信號 signal_time = QtCore.pyqtSignal(str, int) 指定了參數str和int
發送信號 self.signal_time.emit("Running time:", self.num)
外部接收信號 self.timer_t.signal_time.connect(self.update_timer_tv)
信號連接到方法 update_timer_tv(self, text, number) ,注意信號與方法的參數要一一對應
使用中我們可以定義多種不同的信號 QtCore.pyqtSignal
啟動線程,調用 start()

㈢ Python,pyqt5

pyqt5&pythonGui入門教程(1)第一個窗口(1) 第一個窗口和代碼詳細注釋: fromPyQt5importQtWidgets#從PyQt庫導入QtWidget通用窗口類classmywindow(QtWidgets.QWidget):#自己建一個mywindows類,以class開頭,mywindows是自己的類名,

閱讀全文

與python27qt5教程相關的資料

熱點內容
蜂鳥眾包app如何聯系客服 瀏覽:187
程序員t恤淘寶 瀏覽:92
自助研發app如何推廣 瀏覽:726
國家反詐app在哪裡下 瀏覽:946
如何在晉江文學城添加密保 瀏覽:338
linux父進程kill 瀏覽:871
設備樹文件反編譯 瀏覽:501
小米照片的文件夾叫什麼 瀏覽:294
怎樣查程序員轉獵頭 瀏覽:672
吉林小說網綜排行榜少年巨 瀏覽:182
dns測試命令是 瀏覽:750
手機文件雙重解壓 瀏覽:481
linux查看tomcat線程 瀏覽:153
51單片機晶振電容 瀏覽:636
編譯器錯誤的位置怎麼找到 瀏覽:434
編譯原理操作系統圖形學 瀏覽:843
安卓怎麼玩華為 瀏覽:249
情人節網站源碼 瀏覽:307
設備管理命令行 瀏覽:726
吃哺乳期的電影 瀏覽:192