到目前为止,已经接触的Pyside的界面元素有如下几个:QWidget、QPushButton、QLabel。本次再介绍两个tooltip和messagebox。tooltip是一个鼠标悬浮提示信息,messagebox是一个弹出式对话框信息提示。
ToolTip
1 class Example(QtGui.QWidget): 2 3 def __init__(self): 4 super(Example, self).__init__() 5 6 self.initUI() 7 8 def initUI(self): 9 10 QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10)) 11 12 self.setToolTip('This is a <b>QWidget</b> widget') 13 14 btn = QtGui.QPushButton('Button', self) 15 btn.setToolTip('This is a <b>QPushButton</b> widget') 16 btn.resize(btn.sizeHint()) 17 btn.move(50, 50) 18 19 self.setGeometry(300, 300, 250, 150) 20 self.setWindowTitle('Tooltips') 21 self.show() 22 23 def main(): 24 25 app = QtGui.QApplication(sys.argv) 26 ex = Example() 27 sys.exit(app.exec_()) 28 29 30 if __name__ == '__main__': 31 main()
效果如下,当把鼠标放在button上时,会出现一个小小的提示信息This is a QPushButton widget:
通过这个例子可以看到,每个元素都可以设置自己的tooltip。
MessageBox
1 #!/usr/bin/python 2 #coding:utf-8 3 #Filename:messagebox.py 4 import sys 5 from PySide.QtCore import * 6 from PySide.QtGui import * 7 class Example(QWidget): 8 def __init__(self): 9 super(Example ,self).__init__() 10 self.initUI() 11 def initUI(self): 12 self.setGeometry(300,300,250,150) 13 self.setWindowTitle('Message vox') 14 self.show() 15 def closeEvent(self,event): 16 reply = QMessageBox.question(self,'Message','Are you 17 sure to quit?',QMessageBox.Yes | QMessageBox.No, 18 QMessageBox.No) 19 if reply == QMessageBox.Yes: 20 event.accept() 21 else: 22 event.ignore() 23 24 def main(): 25 app = QApplication(sys.argv) 26 ex = Example() 27 sys.exit(app.exec_()) 28 if __name__ == "__main__": 29 main()
QMessageBox.question(self,'Message','Are you sure to quit?',QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
第一个参数为Widget,第二个参数为messagebox的标题,第三个参数为显示的内容,第四个参数为选项,第五个参数为默认的获取焦点的选项,这里时默认为NO获取焦点。