亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pyqt5。運行字符串和時鐘

pyqt5。運行字符串和時鐘

哈士奇WWW 2022-06-28 10:18:53
我有一個帶有標簽的表格(頂部的時鐘和底部的運行字符串)。我在表單中添加了 linker_by_grid (以便在調整表單大小時所有組件都可以按比例調整大?。?。當我運行項目時,運行字符串中的每一秒文本都在抽搐。如果我從表單中刪除 linker_by_grid,一切正常,但所有組件都不會自動調整大小以適應表單。來自 QtDesigner 的代碼:    class Ui_Form(object):        def setupUi(self, Form):            Form.setObjectName("Form")            Form.resize(498, 299)            self.verticalLayoutWidget = QtWidgets.QWidget(Form)            self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 479, 281))            self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")            self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)            self.verticalLayout.setContentsMargins(0, 0, 0, 0)            self.verticalLayout.setObjectName("verticalLayout")            self.label_2 = QtWidgets.QLabel(self.verticalLayoutWidget)            font = QtGui.QFont()            font.setPointSize(15)            self.label_2.setFont(font)            self.label_2.setText("")            self.label_2.setAlignment(QtCore.Qt.AlignCenter)            self.label_2.setObjectName("label_2")            self.verticalLayout.addWidget(self.label_2)            self.tableWidget = QtWidgets.QTableWidget(self.verticalLayoutWidget)            self.tableWidget.setObjectName("tableWidget")            self.tableWidget.setColumnCount(0)            self.tableWidget.setRowCount(0)            self.verticalLayout.addWidget(self.tableWidget)            self.label = QtWidgets.QLabel(self.verticalLayoutWidget)            font = QtGui.QFont()            font.setPointSize(15)            self.label.setFont(font)            self.label.setObjectName("label")            self.verticalLayout.addWidget(self.label)            self.retranslateUi(Form)            QtCore.QMetaObject.connectSlotsByName(Form)        def retranslateUi(self, Form):            _translate = QtCore.QCoreApplication.translate            Form.setWindowTitle(_translate("Form", "Form"))            self.label.setText(_translate("Form", "Running string ... "))
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

您需要label從layout


import sys

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5 import QtWidgets

from PyQt5.QtCore import QTimer, QTime


#import untitled


class Ui_Form(object):

    def setupUi(self, Form):

        Form.setObjectName("Form")

        Form.resize(500, 350)      #(498, 299)


#        self.verticalLayoutWidget = QtWidgets.QWidget(Form)

#        self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 479, 281))

#        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")


        self.verticalLayout = QtWidgets.QVBoxLayout(Form)     #(self.verticalLayoutWidget)

        self.verticalLayout.setContentsMargins(0, 0, 0, 50)   # + 50

        self.verticalLayout.setObjectName("verticalLayout")

        self.label_2 = QtWidgets.QLabel(Form)                 #(self.verticalLayoutWidget)

        font = QtGui.QFont()

        font.setPointSize(15)

        self.label_2.setFont(font)

        self.label_2.setText("")

        self.label_2.setAlignment(QtCore.Qt.AlignCenter)

        self.label_2.setObjectName("label_2")

        self.verticalLayout.addWidget(self.label_2)

        self.tableWidget = QtWidgets.QTableWidget(Form)       #(self.verticalLayoutWidget)

        self.tableWidget.setObjectName("tableWidget")

        self.tableWidget.setColumnCount(4)

        self.tableWidget.setRowCount(3)

        self.verticalLayout.addWidget(self.tableWidget)


#        self.label = QtWidgets.QLabel(self.verticalLayoutWidget)

#        font = QtGui.QFont()

#        font.setPointSize(15)

#        self.label.setFont(font)

#        self.label.setObjectName("label")

#        self.verticalLayout.addWidget(self.label)


        self.retranslateUi(Form)

        QtCore.QMetaObject.connectSlotsByName(Form)


    def retranslateUi(self, Form):

        _translate = QtCore.QCoreApplication.translate

        Form.setWindowTitle(_translate("Form", "Form"))

#        self.label.setText(_translate("Form", "Running string ... "))



class Widget(QtWidgets.QWidget):

    def __init__(self):

        super(Widget, self).__init__()

        self.ui = Ui_Form()

        self.ui.setupUi(self)


        self.ui.tableWidget.setAlternatingRowColors(True) # +

        self.ui.tableWidget.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch) # +


        self.labelMove = QtWidgets.QLabel("Running string ... ", self)  # +

        font = QtGui.QFont()                                            # +

        font.setPointSize(15)                                           # +

        self.labelMove.setFont(font)                                    # +


        self.x = self.width() #477

        self.y = self.height() - 30 

        self.labelMove.move(self.x, self.y)               


        self.timer = QTimer(self)

        self.timer.timeout.connect(self.move_label_left)

        self.timer.start(15)                                 # 100


        self.timer2 = QTimer(self)

        self.timer2.timeout.connect(self.show_clock)

        self.timer2.start(1000)


    def move_label_left(self):

        if self.x <= -150:                                   # 477

            self.x = self.width()                            # 477

            self.x -= 1

            self.labelMove.move(self.x, self.height() - 30)

        else:

            self.x -= 1

            self.labelMove.move(self.x, self.height() - 30)

        self.labelMove.adjustSize()                           # +++


    def show_clock(self):

        time = QTime.currentTime()

        text = time.toString('hh:mm:ss')

        self.ui.label_2.setText(text)



if __name__ == "__main__":

    app = QtWidgets.QApplication(sys.argv)

    w = Widget()

    w.show()

    sys.exit(app.exec_())

http://img1.sycdn.imooc.com//62ba653a0001061504010248.jpg

查看完整回答
反對 回復 2022-06-28
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號