pyqt5是一套Python綁定Digia QT5應用的框架。它可用於Python 2和3。本教程使用Python 3。Qt庫是最強大的GUI庫之一。pyqt5的官方網站http://www.riverbankcomputing.co.uk/news。python
pyqt5作爲Python的一個模塊,它有620多個類和6000個函數和方法。這是一個跨平臺的工具包,它能夠運行在全部主要的操做系統,包括UNIX,Windows,Mac OS。pyqt5是雙重許可。開發者能夠在GPL和商業許可之間進行選擇。web
pyqt5的類別分爲幾個模塊,包括如下:數據庫
pyqt5不向後兼容pyqt4。pyqt5有幾個顯著的變化。將舊代碼調整到新庫並不困難。有幾個大的改變以下:編程
本人曾寫過一個數字貨幣搬磚的界面,效果以下圖:瀏覽器
界面的設計用的是pyqt5,設計完成後使用命令 python -m PyQt5.uic.pyuic xxx.ui -o xxx.py 轉換爲python的代碼服務器
轉換後的代碼:網絡
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'test7.ui' # # Created by: PyQt5 UI code generator 5.11.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(753, 744) self.formLayoutWidget = QtWidgets.QWidget(Dialog) self.formLayoutWidget.setGeometry(QtCore.QRect(180, 30, 321, 411)) self.formLayoutWidget.setObjectName("formLayoutWidget") self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget) self.formLayout.setContentsMargins(0, 0, 0, 0) self.formLayout.setObjectName("formLayout") self.symbol_label = QtWidgets.QLabel(self.formLayoutWidget) self.symbol_label.setObjectName("symbol_label") self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.symbol_label) self.symbol_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.symbol_LineEdit.setObjectName("symbol_LineEdit") self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.symbol_LineEdit) self.amount_label = QtWidgets.QLabel(self.formLayoutWidget) self.amount_label.setObjectName("amount_label") self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.amount_label) self.amount_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.amount_LineEdit.setObjectName("amount_LineEdit") self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.amount_LineEdit) self.label_3 = QtWidgets.QLabel(self.formLayoutWidget) self.label_3.setText("") self.label_3.setObjectName("label_3") self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.label_3) self.rate_diff_label = QtWidgets.QLabel(self.formLayoutWidget) self.rate_diff_label.setObjectName("rate_diff_label") self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.rate_diff_label) self.rate_diff_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.rate_diff_LineEdit.setObjectName("rate_diff_LineEdit") self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.rate_diff_LineEdit) self.side_label = QtWidgets.QLabel(self.formLayoutWidget) self.side_label.setObjectName("side_label") self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.side_label) self.huobi_buy_gemini_sell = QtWidgets.QRadioButton(self.formLayoutWidget) self.huobi_buy_gemini_sell.setObjectName("huobi_buy_gemini_sell") self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.huobi_buy_gemini_sell) self.binance_buy_gemini_sell = QtWidgets.QRadioButton(self.formLayoutWidget) self.binance_buy_gemini_sell.setObjectName("binance_buy_gemini_sell") self.formLayout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.binance_buy_gemini_sell) self.gemini_buy_huobi_sell = QtWidgets.QRadioButton(self.formLayoutWidget) self.gemini_buy_huobi_sell.setObjectName("gemini_buy_huobi_sell") self.formLayout.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.gemini_buy_huobi_sell) self.gemini_buy_binance_sell = QtWidgets.QRadioButton(self.formLayoutWidget) self.gemini_buy_binance_sell.setObjectName("gemini_buy_binance_sell") self.formLayout.setWidget(9, QtWidgets.QFormLayout.FieldRole, self.gemini_buy_binance_sell) self.buy_ApiKey_label = QtWidgets.QLabel(self.formLayoutWidget) self.buy_ApiKey_label.setObjectName("buy_ApiKey_label") self.formLayout.setWidget(11, QtWidgets.QFormLayout.LabelRole, self.buy_ApiKey_label) self.buy_ApiKey_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.buy_ApiKey_LineEdit.setObjectName("buy_ApiKey_LineEdit") self.formLayout.setWidget(11, QtWidgets.QFormLayout.FieldRole, self.buy_ApiKey_LineEdit) self.buy_SecretKey_label = QtWidgets.QLabel(self.formLayoutWidget) self.buy_SecretKey_label.setObjectName("buy_SecretKey_label") self.formLayout.setWidget(12, QtWidgets.QFormLayout.LabelRole, self.buy_SecretKey_label) self.buy_SecretKey_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.buy_SecretKey_LineEdit.setObjectName("buy_SecretKey_LineEdit") self.formLayout.setWidget(12, QtWidgets.QFormLayout.FieldRole, self.buy_SecretKey_LineEdit) self.sell_ApiKey_label = QtWidgets.QLabel(self.formLayoutWidget) self.sell_ApiKey_label.setObjectName("sell_ApiKey_label") self.formLayout.setWidget(13, QtWidgets.QFormLayout.LabelRole, self.sell_ApiKey_label) self.sell_ApiKey_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.sell_ApiKey_LineEdit.setObjectName("sell_ApiKey_LineEdit") self.formLayout.setWidget(13, QtWidgets.QFormLayout.FieldRole, self.sell_ApiKey_LineEdit) self.sell_Secretkey_label = QtWidgets.QLabel(self.formLayoutWidget) self.sell_Secretkey_label.setObjectName("sell_Secretkey_label") self.formLayout.setWidget(14, QtWidgets.QFormLayout.LabelRole, self.sell_Secretkey_label) self.sell_Secretkey_LineEdit = QtWidgets.QLineEdit(self.formLayoutWidget) self.sell_Secretkey_LineEdit.setObjectName("sell_Secretkey_LineEdit") self.formLayout.setWidget(14, QtWidgets.QFormLayout.FieldRole, self.sell_Secretkey_LineEdit) self.result_info = QtWidgets.QLabel(self.formLayoutWidget) self.result_info.setText("") self.result_info.setObjectName("result_info") self.formLayout.setWidget(15, QtWidgets.QFormLayout.SpanningRole, self.result_info) self.label = QtWidgets.QLabel(Dialog) self.label.setGeometry(QtCore.QRect(160, 10, 231, 19)) self.label.setObjectName("label") self.gemini_currency_label = QtWidgets.QLabel(Dialog) self.gemini_currency_label.setGeometry(QtCore.QRect(170, 580, 101, 20)) self.gemini_currency_label.setObjectName("gemini_currency_label") self.gemini_usd_label = QtWidgets.QLabel(Dialog) self.gemini_usd_label.setGeometry(QtCore.QRect(170, 610, 101, 20)) self.gemini_usd_label.setObjectName("gemini_usd_label") self.exchange_currency_label = QtWidgets.QLabel(Dialog) self.exchange_currency_label.setGeometry(QtCore.QRect(170, 640, 101, 20)) self.exchange_currency_label.setObjectName("exchange_currency_label") self.exchange_usd_label = QtWidgets.QLabel(Dialog) self.exchange_usd_label.setGeometry(QtCore.QRect(170, 670, 101, 20)) self.exchange_usd_label.setObjectName("exchange_usd_label") self.result_label = QtWidgets.QLabel(Dialog) self.result_label.setGeometry(QtCore.QRect(170, 470, 60, 16)) self.result_label.setObjectName("result_label") self.trade_per_label = QtWidgets.QLabel(Dialog) self.trade_per_label.setGeometry(QtCore.QRect(210, 550, 60, 16)) self.trade_per_label.setObjectName("trade_per_label") self.trade_per_text = QtWidgets.QTextBrowser(Dialog) self.trade_per_text.setGeometry(QtCore.QRect(280, 550, 121, 21)) self.trade_per_text.setObjectName("trade_per_text") self.gemini_currency_text = QtWidgets.QTextBrowser(Dialog) self.gemini_currency_text.setGeometry(QtCore.QRect(280, 580, 251, 21)) self.gemini_currency_text.setObjectName("gemini_currency_text") self.gemini_usd_text = QtWidgets.QTextBrowser(Dialog) self.gemini_usd_text.setGeometry(QtCore.QRect(280, 610, 251, 21)) self.gemini_usd_text.setObjectName("gemini_usd_text") self.exchange_currency_text = QtWidgets.QTextBrowser(Dialog) self.exchange_currency_text.setGeometry(QtCore.QRect(280, 640, 251, 21)) self.exchange_currency_text.setObjectName("exchange_currency_text") self.exchange_usd_text = QtWidgets.QTextBrowser(Dialog) self.exchange_usd_text.setGeometry(QtCore.QRect(280, 670, 251, 21)) self.exchange_usd_text.setObjectName("exchange_usd_text") self.pushButton = QtWidgets.QPushButton(Dialog) self.pushButton.setGeometry(QtCore.QRect(220, 440, 141, 32)) self.pushButton.setObjectName("pushButton") self.bid_price_label = QtWidgets.QLabel(Dialog) self.bid_price_label.setGeometry(QtCore.QRect(230, 490, 51, 20)) self.bid_price_label.setObjectName("bid_price_label") self.bid_price_text = QtWidgets.QTextBrowser(Dialog) self.bid_price_text.setGeometry(QtCore.QRect(280, 490, 121, 21)) self.bid_price_text.setObjectName("bid_price_text") self.ask_price_label = QtWidgets.QLabel(Dialog) self.ask_price_label.setGeometry(QtCore.QRect(230, 520, 51, 20)) self.ask_price_label.setObjectName("ask_price_label") self.ask_price_text = QtWidgets.QTextBrowser(Dialog) self.ask_price_text.setGeometry(QtCore.QRect(280, 520, 121, 21)) self.ask_price_text.setObjectName("ask_price_text") self.net_test_button = QtWidgets.QPushButton(Dialog) self.net_test_button.setGeometry(QtCore.QRect(40, 400, 113, 41)) self.net_test_button.setObjectName("net_test_button") self.stop_btn = QtWidgets.QPushButton(Dialog) self.stop_btn.setGeometry(QtCore.QRect(390, 440, 141, 32)) self.stop_btn.setObjectName("stop_btn") self.amount_ps_label_2 = QtWidgets.QLabel(Dialog) self.amount_ps_label_2.setGeometry(QtCore.QRect(420, 80, 228, 19)) self.amount_ps_label_2.setObjectName("amount_ps_label_2") self.amount_ps_label = QtWidgets.QLabel(Dialog) self.amount_ps_label.setGeometry(QtCore.QRect(420, 60, 264, 19)) self.amount_ps_label.setObjectName("amount_ps_label") self.symbol_ps_label = QtWidgets.QLabel(Dialog) self.symbol_ps_label.setGeometry(QtCore.QRect(420, 30, 168, 19)) self.symbol_ps_label.setObjectName("symbol_ps_label") self.rate_ps_label = QtWidgets.QLabel(Dialog) self.rate_ps_label.setGeometry(QtCore.QRect(420, 120, 214, 19)) self.rate_ps_label.setObjectName("rate_ps_label") self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) self.symbol_label.setText(_translate("Dialog", "品種")) self.amount_label.setText(_translate("Dialog", "數量")) self.rate_diff_label.setText(_translate("Dialog", "利率差")) self.side_label.setText(_translate("Dialog", "買賣方向")) self.huobi_buy_gemini_sell.setText(_translate("Dialog", "huobi買,gemini賣")) self.binance_buy_gemini_sell.setText(_translate("Dialog", "binance買,gemini賣")) self.gemini_buy_huobi_sell.setText(_translate("Dialog", "gemini買,huobi賣")) self.gemini_buy_binance_sell.setText(_translate("Dialog", "gemini買,binance賣")) self.buy_ApiKey_label.setText(_translate("Dialog", "買_ApiKey")) self.buy_SecretKey_label.setText(_translate("Dialog", "買_SecretKey")) self.sell_ApiKey_label.setText(_translate("Dialog", "賣_ApiKey")) self.sell_Secretkey_label.setText(_translate("Dialog", "賣_Secret_key")) self.label.setText(_translate("Dialog", "輸入參數")) self.gemini_currency_label.setText(_translate("Dialog", "gemini-品種餘額")) self.gemini_usd_label.setText(_translate("Dialog", "gemini-usd餘額")) self.exchange_currency_label.setText(_translate("Dialog", " 交易所-品種餘額")) self.exchange_usd_label.setText(_translate("Dialog", "交易所-usdt餘額")) self.result_label.setText(_translate("Dialog", "結果")) self.trade_per_label.setText(_translate("Dialog", "交易進度")) self.pushButton.setText(_translate("Dialog", "開始")) self.bid_price_label.setText(_translate("Dialog", "買一價")) self.ask_price_label.setText(_translate("Dialog", "賣一價")) self.net_test_button.setText(_translate("Dialog", "點擊測試網絡")) self.stop_btn.setText(_translate("Dialog", "中止")) self.amount_ps_label_2.setText(_translate("Dialog", " binance:10usdt交易額")) self.amount_ps_label.setText(_translate("Dialog", "注:最小交易量: huobi:eth--0.01,btc--0.001")) self.symbol_ps_label.setText(_translate("Dialog", "注:輸入幣種名(btc | eth)")) self.rate_ps_label.setText(_translate("Dialog", "注:輸入小數,如0.18%即填0.18 "))