创建一个最简单的PySide程序:
#python 3.4 import sys import PySide from PySide.QtGui import QApplication from PySide.QtGui import QMessageBox # 创建应用程序对象 app = QApplication(sys.argv) # 创建简单的对话框 msgBox = QMessageBox() msgBox.setText("Hello World - 使用PySide的版本:" + PySide.__version__) msgBox.exec_()
输出结果如下图:
在这个例子里,先导入系统模块sys,因为需要使用应用程序启动时的命令行参数sys.argv。接着导出PySide模块,再从这个模块QtGui里导入应用程序对象类QApplication、QMessageBox,后面需要使用类QApplication创建应用程序对象,使用类QMessageBox创建对话框。
app = QApplication(sys.argv)
这一行创建应用程序对象app。
msgBox = QMessageBox()
这一行是创建一个对话框msgBox。
msgBox.setText("Hello World - 使用PySide的版本:" + PySide.__version__)
这一行是设置对话框显示的内容,这里并显示PySide的版本。
msgBox.exec_()
这一行是显示一个模式对话框,直到这个对话框关闭为止。
类QApplication
本类管理GUI应用程序的控制流和主要设置,包括应用程序的事件循环,其中可以是来自窗口系统和其它资源的所有事件被处理和调度,特别处理了应用程序的初始化和结束状态。对于任何有使用Qt界面的应用程序都需要创建一个QApplication的对象,在这个对象里就可以创建多个窗口。主要工作有:
1)初始化应用程序。比如初始化调色板、字体和跟踪用户桌面。
2)处理触发的事件循环。从系统里获取到事件,发送到对应的窗口处理。
3)分析命令行参数,并保存到相应位置。
4)设置应用程序界面的风格。
5)设置应用程序的颜色配置。
6)提供本地化的字符串处理。
7)提供桌面管理和剪贴板功能。
8)提供应用程序窗口布局位置。
9)管理应用程序的鼠标光标。
由于QApplication对象需要初始化比较多基本的内容,它必须在应用程序最开始位置就进行创建,并初始化它,否则其它对象都使用不了。
类QMessageBox
本类实现消息对话框的管理。主要提供了一个窗口显示消息,然后提供按钮来选择不同的响应。
创建带选择按钮的例子:
#python 3.4 import sys import PySide from PySide.QtGui import QApplication from PySide.QtGui import QMessageBox # 创建应用程序对象 app = QApplication(sys.argv) # 创建简单的对话框 msgBox = QMessageBox() msgBox.setText("Hello World - 使用PySide的版本:" + PySide.__version__) msgBox.setInformativeText('你想保存数据吗?') msgBox.setStandardButtons(QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel) msgBox.setDefaultButton(QMessageBox.Save) msgBox.exec_()
结果输出如下:
在这个例子里,与前面的例子相比,主要增加详细的提示信息,以及增加了选择按钮:保存按钮、放弃按钮、取消按钮。并设置了保存按钮为缺省按钮。
setInformativeText()函数设置更详细的提示信息。
setStandardButtons()函数设置对话框显示的按钮。标准按钮主要有:
QMessageBox.Ok “OK” 按钮
QMessageBox.Open “Open”按钮
QMessageBox.Save “Save”按钮
QMessageBox.Cancel “Cancel” 按钮
QMessageBox.Close “Close” 按钮
QMessageBox.Discard “Discard” or “Don’t Save” 按钮
QMessageBox.Apply “Apply” 按钮
QMessageBox.Reset “Reset” 按钮
QMessageBox.RestoreDefaults “Restore Defaults” 按钮
QMessageBox.Help “Help” 按钮
QMessageBox.SaveAll “Save All”按钮
QMessageBox.Yes “Yes” 按钮
QMessageBox.YesToAll “Yes to All” 按钮
QMessageBox.No “No” 按钮
QMessageBox.NoToAll “No to All” 按钮
QMessageBox.Abort “Abort” 按钮
QMessageBox.Retry “Retry” 按钮
QMessageBox.Ignore “Ignore” 按钮
QMessageBox.NoButton 非法按钮
根据按钮选择进行事件处理例子:
#python 3.4 import sys import PySide from PySide.QtGui import QApplication from PySide.QtGui import QMessageBox # 创建应用程序对象 app = QApplication(sys.argv) # 创建简单的对话框 msgBox = QMessageBox() msgBox.setText("Hello World - 使用PySide的版本:" + PySide.__version__) msgBox.setInformativeText('你想保存数据吗?') msgBox.setStandardButtons(QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel) msgBox.setDefaultButton(QMessageBox.Save) ret = msgBox.exec_() if ret == QMessageBox.Save: #保存按钮 print('save') elif ret == QMessageBox.Discard: #不保存 print('discard') elif ret == QMessageBox.Cancel: #取消 print('cancel') else: #无效值 print('invalid')
在这个例子里,对对话框执行之后的消息进行处理,返回的结果值保存在ret里,然后根据用户的选择来执行不同的功能代码,这个是通过if语句来实现的。
蔡军生 QQ:9073204 深圳