Python界面编程第九课:Pyside2 (Qt For Python)创建数字时钟

先上代码:

from PySide2.QtWidgets import QApplication, QWidget, QLCDNumber
from PySide2.QtCore import QTime, QTimer, SIGNAL
import sys
from PySide2.QtGui import QIcon


class DigitalClock(QLCDNumber):
    def __init__(self, parent = None):
        super(DigitalClock, self).__init__(parent)

        self.setSegmentStyle(QLCDNumber.Filled)

        timer = QTimer(self)
        self.connect(timer, SIGNAL('timeout()'), self.showTime)
        timer.start(1000)
        self.showTime()
        self.setWindowTitle("Digital Clock")
        self.resize(300, 200)

        self.setIcon()


    def setIcon(self):
        appIcon = QIcon("icon.png")
        self.setWindowIcon(appIcon)



    def showTime(self):
        time = QTime.currentTime()
        text = time.toString('hh:mm')
        if(time.second() % 2) == 0:
            text = text[:2] + ' ' + text[3:]

        self.display(text)



myapp = QApplication(sys.argv)
window = DigitalClock()
window.show()
myapp.exec_()
sys.exit()

首先导入要用的库:

from PySide2.QtWidgets import QApplication, QWidget, QLCDNumber
from PySide2.QtCore import QTime, QTimer, SIGNAL
import sys
from PySide2.QtGui import QIcon

然后是继承QLCDNumber这个主窗口类。在这个类中,我们将创建QTimer 类的对象,然后QTimertimeout 信号连接到showTime 这个槽。

QLCDNumber 是什么?

它可以显示任意大小的数字,可以显示十进制、十六进制、八进制或二进制数。使用display() 槽很容易连接到数据源,它重载了五种参数类型。

使用setMode()可以设置更多的槽,setSmallDecimalPoint()可以设置小数点位数。

数据溢出是,QLCDNumber会发出overflow()的信号。setDigitCount()可以设置数据范围,但是setSmallDecimalPoint()的设置会影响它。如果显示设置为十六进制、八进制或二进制,则会显示等值的整数。

这些数字和符号可以显示:0/O、1、2、3、4、5/S、6、7、8、9/g、减、小数点、A、B、C、D、E、F、h、H、L、o、P、r、u、U、Y、冒号、度符号(在字符串中指定为单引号)和空格。QLCDNumber会用空格替换非法字符。

QLCDNumber对象无法直接获取内容,但可以使用value()得到数值。如果您确实需要文本,我们建议您将给display() 槽提供信号的源连接到另一个槽,并将值存储在那里。

顺便说一句,QLCDNumber是Qt中最古老的部分,它的根源可以追溯到BASIC程序。

QTimer 类是什么 ?

QTimer类为定时器提供了一个高级编程接口。要使用它,先创建一个QTimer,将timeout()信号连接到适当的槽,并调用start()。然后它将以固定的间隔发出timeout()信号。

下面这个槽就连接了timeout()信号:

 def showTime(self):
        time = QTime.currentTime()
        text = time.toString('hh:mm')
        if(time.second() % 2) == 0:
            text = text[:2] + ' ' + text[3:]
 
        self.display(text)

运行一下看效果:

如果不清楚其它代码含义,请参考前面课程:

Python界面编程第一课:我们开始用Pyside2 (Qt For Python)

Python界面编程第二课:Pyside2 创建窗口 (Python GUI)

Python界面编程第三课:Pyside2 (Qt For Python)给窗口加个图标

Python界面编程第四课:Pyside2 (Qt For Python)创建图标模式

Python界面编程第五课:Pyside2 (Qt For Python)怎么创建控件提示Tooltip

Python界面编程第六课:Pyside2 (Qt For Python),QPushButton按钮的信号与槽

Python界面编程第七课:Pyside2 (Qt For Python)窗口居中

Python界面编程第八课:Pyside2 (Qt For Python)打开关于窗口

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一些关于使用 PySide2Qt Designer 设计 Python 用户登录界面的指导。 首先,您需要安装 PySide2 库和 Qt Designer 工具。可以通过 pip 安装 PySide2,命令如下: ``` pip install PySide2 ``` Qt Designer 是 Qt 开发工具包中的一个可视化界面设计工具,您可以从 Qt 官网下载并安装。 在 Qt Designer 中设计登录界面后,您需要将 .ui 文件转换为 .py 文件,PySide2 提供了一个名为 pyside2-uic 的工具来完成这个转换过程。您可以在终端中使用以下命令将 .ui 文件转换为 .py 文件: ``` pyside2-uic input.ui -o output.py ``` 在 Python 代码中,您需要导入 PySide2 库和转换后的 .py 文件,然后创建登录界面并显示它。以下是一个简单的示例代码: ```python import sys from PySide2.QtWidgets import QApplication, QDialog from output import Ui_LoginDialog class LoginDialog(QDialog, Ui_LoginDialog): def __init__(self): super().__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) login_dialog = LoginDialog() login_dialog.show() sys.exit(app.exec_()) ``` 在这个示例中,我们导入了 PySide2 库和转换后的 .py 文件,并创建了一个名为 LoginDialog 的 QDialog 子类。我们还在 LoginDialog 类的构造函数中调用了 setupUi() 方法,该方法由 pyside2-uic 工具生成,用于将 .ui 文件中的部件添加到 QDialog 中。 最后,我们创建了一个 QApplication 实例、一个 LoginDialog 实例,并显示了登录界面。最后,我们调用 app.exec_() 方法进入 Qt 事件循环,等待用户与登录界面交互。 希望这些信息可以帮助您开始设计 Python 用户登录界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称6550523

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值