当前位置:首页 >> 脚本专栏

Python气泡提示与标签的实现

来更新Gui教程了!!!

今天我们讲气泡提示,就是这个样子的。

Python气泡提示与标签的实现

那个‘这是一个气泡提示'就是气泡提示,朋友们肯定有些会‘哦,原来就是这个呀。',也有些朋友会说:“这不是电脑自带的吗”。这个问题在我刚学编程的时候,也是这样。比如我一开始先是学Scratch,然后目标是编一个植物大战僵尸。当我去编的时候(没学过,因为很简单,一看就懂。),以为太阳从天上掉下来的效果是编的时候不用编,而是以为自带的。结果还要涉及到什么随机数,好了,说远了…

代码上!!!

import sys
from PyQt5.QtWidgets import QWidget, QToolTip, QApplication
from PyQt5.QtGui import QFont

class Example(QWidget):
  def __init__(self):
    super().__init__()
    self.settings()

  def settings(self):
    self.setGeometry(300, 300, 400, 300)
    self.setWindowTitle('啥都行')
    self.setToolTip('气泡提示')  #气泡提示
    QToolTip.setFont(QFont('microsoft Yahei', 10)) #字体格式
    self.show()

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

很明显,我们用setToolTip创建了一个气泡提示。然后这里要注意,这里是self.setToolTip,就是说在整个界面都可显示气泡,而不是在某个字上或按钮上(后面讲)然后就是字体。设置字体的两个参数分别是字体名字与大小。

刚刚提到了标签,那我们也来讲一讲,至于按钮,就有点复杂,所以下一期讲吧。

代码呢?滚出来!

import sys
from PyQt5.QtWidgets import QWidget, QLabel, QApplication
from PyQt5.QtGui import QPixmap
class Example(QWidget):
  def __init__(self):
    super().__init__()
    self.settings()

  def settings(self):
    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('啥都行')
    self.a = QLabel(self)
    self.a.setToolTip('气泡提示')
    self.a.setText('关注一下吧!')
    self.a.move(50,50)
    print(self.a.text())
    self.show()

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

大家注意了,这里的气泡提示就只能在‘关注一下吧'标签上看到了,这个标签以外的地方都无法看到这个气泡提示。可能有些朋友不知道怎么看气泡提示,就是将光标放在气泡提示的地方,等一会儿就出现了。

这个QLabel就是标签,也可以设置字体。只不过我没展示出来。self.a.text()是获取self.a的文本,如果你只是打印self.a,那么结果就是:
<PyQt5.QtWidgets.QLabel object at 0x053A4300>
这个0x053A4300是程序每次执行分配给变量或者其它的什么的一个ID,ID相当于每个人的身份证。

如果你要查看self.a的类型,那么就是这个:
<class ‘PyQt5.QtWidgets.QLabel'>

大家一定要注意,这个非常重要!!!
标签的内容只能是字符串!!!,大家应该知道我以前的博客除了QQ之外没加粗过字体。为什么我这么重视,大家看个例子:

import sys
from PyQt5.QtWidgets import QWidget, QLabel, QApplication,QPushButton
class Example(QWidget):
  def __init__(self):
    super().__init__()
    self.initUI()

  def initUI(self):
    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('QLabel标签')
    self.a = QLabel(self)
    self.a.setText('变数字')
    self.a.move(50,50)
    self.b = QPushButton('确定',self)
    self.b.clicked.connect(self.buttonClicked)
    self.b.move(100,100)
    self.show()

  def buttonClicked(self):
    self.a.setText('123')

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())

这里面涉及到按钮,大家不用管,反正下一期会讲。大概的目标就是按一下按钮,标签会变成另外的内容。

如果你用的是pycharm,那么按一下按钮就会这样:

Python气泡提示与标签的实现

如果你运行成功的话,应该是0,但是这里是1。但是又不报错。

如果用的是Sublime Text3:

Python气泡提示与标签的实现

你就根本不知道有什么错。所以在这里我和大家一再强调:
标签的内容只能是字符串!!!

接着说。这个move就是将对象移动到界面的某个位置,以像素为单位。标签也可以是gif或者图片。gif的话就是用QMovie,这个大家自行搜索,因为我懒得去搜一个gif动图。所以我只和大家说图片。

import sys
from PyQt5.QtWidgets import QWidget, QLabel, QApplication
from PyQt5.QtGui import QPixmap
class Example(QWidget):
  def __init__(self):
    super().__init__()
    self.initUI()

  def initUI(self):
    self.setGeometry(300, 300, 300, 200)
    self.setWindowTitle('QLabel标签')
    self.a = QLabel(self)
    self.a.setToolTip('气泡提示')
    self.a.move(50,50)
    print(self.a.text())
    b = QLabel(self)
    b.setPixmap(QPixmap('图片名字'))
    b.move(100,100)
    self.show()

if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = Example()
  sys.exit(app.exec_())