首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果满足条件,PyQT5更改样式表

如果满足条件,PyQT5更改样式表
EN

Stack Overflow用户
提问于 2022-08-31 13:20:44
回答 1查看 31关注 0票数 -1

从PyQt5导入QtCore、QtGui、QtWidgets从PyQt5.QtWidget导入QApplication、QMainWindow、QPushButton、QPlainTextEdit、QVBoxLayout、QWidget从PyQt5.QtCore导入QProcess导入子进程导入sys导入时间导入日期时间

current_time = datetime.datetime.now() current_time = current_time.strftime('%Y-%m-%d %H:%M')

类TextUpdate():

代码语言:javascript
运行
复制
def watch_list(self):
    self = open(r"C:\Users\Administrator\Desktop\stat_arb\gui\watchlist.txt", 'r').read()
    return self

def order_history(self):
    self = open(r"C:\Users\Administrator\Desktop\stat_arb\gui\orderhistory.txt", 'r').read()
    return self

def re_turn(self):
    self = open(r"C:\Users\Administrator\Desktop\stat_arb\gui\return.txt", 'r').read()
    return self

def net_value(self):
    self = open(r"C:\Users\Administrator\Desktop\stat_arb\gui\netvalue.txt", 'r').read()
    return self

类Ui_MainWindow(object):def setupUi(self,MainWindow):MainWindow.setObjectName("MainWindow") MainWindow.resize(915,413) MainWindow.setStyleSheet(“背景颜色: rgb( 42,42,42)")

代码语言:javascript
运行
复制
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.p = None

    self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
    self.gridLayout.setObjectName("gridLayout")

    self.frame = QtWidgets.QFrame(self.centralwidget)
    self.frame.setStyleSheet(
    "background-color: rgb(42, 42 , 42)")
    self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
    self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
    self.frame.setObjectName("frame")

    self.frame_2 = QtWidgets.QFrame(self.frame)
    self.frame_2.setGeometry(QtCore.QRect(20, 30, 411, 221))
    self.frame_2.setStyleSheet(
    "background-color: #202020;\n"
    "border-radius: 12px")
    self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
    self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
    self.frame_2.setObjectName("frame_2")

    self.watch_text = QtWidgets.QPlainTextEdit(self.frame_2)
    self.watch_text.setGeometry(QtCore.QRect(10, 40, 391, 121))
    self.watch_text.setMouseTracking(False)
    self.watch_text.setStyleSheet(
    "border:0;\n"
    "font-size: 11px;\n"
    "color: #9e9e9e")
    self.watch_text.setBackgroundVisible(False)
    self.watch_text.setObjectName("watch_text")

    self.watch_label = QtWidgets.QPlainTextEdit(self.frame_2)
    self.watch_label.setGeometry(QtCore.QRect(10, 10, 391, 31))
    self.watch_label.setStyleSheet(
    "border:0;\n"
    "font-size: 10px;\n"
    "font-weight: bold;\n"
    "color: #ffffff")
    self.watch_label.setObjectName("watch_label")

    self.start_button = QtWidgets.QPushButton(self.frame_2)
    self.start_button.setGeometry(QtCore.QRect(100, 180, 221, 28))
    self.start_button.setStyleSheet(
    "background-color: #61ac3e;\n"
    "border-radius: 8px;\n"
    "font-size: 10px;\n"
    "font-weight: bold;\n"
    "color: #ffffff")
    self.start_button.setObjectName("start_button")

    self.frame_3 = QtWidgets.QFrame(self.frame)
    self.frame_3.setGeometry(QtCore.QRect(20, 260, 411, 101))
    self.frame_3.setStyleSheet(
    "background-color: #202020;\n"
    "border-radius: 12px")
    self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
    self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
    self.frame_3.setObjectName("frame_3")

    self.output_text = QtWidgets.QPlainTextEdit(self.frame_3)
    self.output_text.setGeometry(QtCore.QRect(10, 40, 391, 51))
    self.output_text.setMouseTracking(False)
    self.output_text.setStyleSheet(
    "border:0;\n"
    "font-size: 11px;\n"
    "color: #9e9e9e;")
    self.output_text.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
    self.output_text.setBackgroundVisible(False)
    self.output_text.setObjectName("output_text")

    self.output_label = QtWidgets.QPlainTextEdit(self.frame_3)
    self.output_label.setGeometry(QtCore.QRect(10, 10, 391, 31))
    self.output_label.setStyleSheet("border:0;\n"
    "font-size: 10px;\n"
    "font-weight: bold;\n"
    "color: #ffffff")
    self.output_label.setObjectName("output_label")

    self.frame_4 = QtWidgets.QFrame(self.frame)
    self.frame_4.setGeometry(QtCore.QRect(450, 140, 411, 221))
    self.frame_4.setStyleSheet(
    "background-color: #202020;\n"
    "border-radius: 12px")
    self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
    self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
    self.frame_4.setObjectName("frame_4")

    self.order_text = QtWidgets.QPlainTextEdit(self.frame_4)
    self.order_text.setGeometry(QtCore.QRect(10, 40, 391, 161))
    self.order_text.setMouseTracking(False)
    self.order_text.setStyleSheet(
    "border:0;\n"
    "font-size: 11px;\n"
    "color: #9e9e9e")
    self.order_text.setBackgroundVisible(False)
    self.order_text.setObjectName("order_text")

    self.order_label = QtWidgets.QPlainTextEdit(self.frame_4)
    self.order_label.setGeometry(QtCore.QRect(10, 10, 391, 31))
    self.order_label.setStyleSheet(
    "border:0;\n"
    "font-size: 10px;\n"
    "font-weight: bold;\n"
    "color: #ffffff")
    self.order_label.setObjectName("order_label")

    self.frame_5 = QtWidgets.QFrame(self.frame)
    self.frame_5.setGeometry(QtCore.QRect(450, 30, 411, 101))
    self.frame_5.setStyleSheet(
    "background-color: #202020;\n"
    "border-radius: 12px")
    self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
    self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
    self.frame_5.setObjectName("frame_5")

    self.nav_text = QtWidgets.QPlainTextEdit(self.frame_5)
    self.nav_text.setGeometry(QtCore.QRect(10, 40, 181, 41))
    self.nav_text.setMouseTracking(False)
    self.nav_text.setBackgroundVisible(False)
    self.nav_text.setObjectName("nav_text")
    self.nav_text.setStyleSheet(
    "border:0;\n"
    "font-size: 24px;\n"
    "color: #1a62dd")
    self.nav_label = QtWidgets.QPlainTextEdit(self.frame_5)
    self.nav_label.setGeometry(QtCore.QRect(10, 10, 181, 31))
    self.nav_label.setStyleSheet(
    "border:0;\n"
    "font-size: 10px;\n"
    "font-weight: bold;\n"
    "color: #ffffff")
    self.nav_label.setObjectName("nav_label")

    self.return_text = QtWidgets.QPlainTextEdit(self.frame_5)
    self.return_text.setGeometry(QtCore.QRect(210, 40, 181, 41))
    self.return_text.setMouseTracking(False)
    self.return_text.setBackgroundVisible(False)
    self.return_text.setObjectName("return_text")
    self.return_text.setStyleSheet(
    "border:0;\n"
    "font-size: 24px;\n"
    "color: #9e9e9e")

    self.return_label = QtWidgets.QPlainTextEdit(self.frame_5)
    self.return_label.setGeometry(QtCore.QRect(210, 10, 181, 31))
    self.return_label.setStyleSheet(
    "border:0;\n"
    "font-size: 10px;\n"
    "font-weight: bold;\n"
    "color: #ffffff")
    self.return_label.setObjectName("return_label")
    self.gridLayout.addWidget(self.frame, 0, 0, 1, 1)
    MainWindow.setCentralWidget(self.centralwidget)

    self.retranslateUi(MainWindow)
    self.timer = QtCore.QTimer()
    self.timer.start(5)
    self.timer.timeout.connect(lambda:self.watch_text.setPlainText(TextUpdate().watch_list()))
    self.timer.timeout.connect(lambda:self.order_text.setPlainText(TextUpdate().order_history()))
    self.timer.timeout.connect(lambda:self.return_text.setPlainText(TextUpdate().re_turn()))
    self.timer.timeout.connect(lambda:self.nav_text.setPlainText(TextUpdate().net_value()))
    self.start_button.pressed.connect(self.start_process)
    self.output_text.setReadOnly(True)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.watch_label.setPlainText(_translate("MainWindow", "   WATCHLIST"))
    self.start_button.setText(_translate("MainWindow", "START"))
    self.output_label.setPlainText(_translate("MainWindow", "   OUTPUT"))
    self.order_label.setPlainText(_translate("MainWindow", "   ORDER HISTORY"))
    self.nav_label.setPlainText(_translate("MainWindow", "   NET VALUE"))
    self.return_label.setPlainText(_translate("MainWindow", "   %RETURN"))

def message(self, s):
    self.output_text.appendPlainText(s)

def start_process(self):
    if self.p is None:  # No process running.
        self.message(f'[STATUS] {current_time} Initializing process...')
        self.p = QProcess()  # Keep a reference to the QProcess (e.g. on self) while it's running.
        self.p.readyReadStandardOutput.connect(self.handle_stdout)
        self.p.readyReadStandardError.connect(self.handle_stderr)
        self.p.stateChanged.connect(self.handle_state)
        self.p.finished.connect(self.process_finished)  # Clean up once complete.
        # environment path,script.py path
        self.p.start(r'C:\Users\Administrator\PycharmProjects\pythonProject\venv\Scripts\python.exe',
                     [r"C:\Users\Administrator\Desktop\stat_arb\31b_aug.py"])

def handle_stderr(self):
    data = self.p.readAllStandardError()
    stderr = bytes(data).decode("utf8")
    self.message(stderr)

def handle_stdout(self):
    data = self.p.readAllStandardOutput()
    stdout = bytes(data).decode("utf8")
    self.message(stdout)


def handle_state(self, state):
    states = {
        QProcess.NotRunning: 'Not running...',
        QProcess.Starting: 'Starting...',
        QProcess.Running: 'Running...',
    }
    state_name = states[state]
    self.message(f'[STATUS] {current_time} {state_name}')

def process_finished(self):
    self.message("Process finished.")
    self.p = None

def get_termi_futu():subprocess.call("taskkill /F /IM FutuOpenD.exe")打印(‘断开连接’,current_time,‘连接状态’。(交易帐户断开。)

如果 ==命名为"main":导入sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() app.exec_() get_termi_futu() get_termi_futu()

只有在重新启动GUI时,%return才会更新字体颜色。

EN

回答 1

Stack Overflow用户

发布于 2022-09-01 02:32:19

找出它,并添加如下:

代码语言:javascript
运行
复制
def font_color():
        if float(TextUpdate().re_turn()) > 0:
            self = ("border:0;\n"
            "font-size: 24px;\n"
            "color: #23df0a")
            return self
        else:          
            self = (
            "border:0;\n"
            "font-size: 24px;\n"
            "color: #e41a13")           
            return self

self.timer = QtCore.QTimer()

self.timer.start(5)

self.timer.timeout.connect(lambda:self.return_text.setStyleSheet(font_color()))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73556547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档