使用pyqt4开发GUI程序的问题总结
来源:互联网 发布:网络信息许可证 编辑:程序博客网 时间:2024/05/01 22:40
使用pyqt4开发GUI程序的问题总结
最近在用python开发一个应用程序,一开始使用的wxpython,后来觉得wxpython在布局和界面上不够美观,在网上看了一些pyqt开发的gui程序,觉得风格更加符合自己的要求,于是换了pyqt4进行开发,开发过程中遇到了一些问题,把他们记录下来,与大家分享。
- QtDesigner产生的ui文件如何转换为py文件
- pyqt中定时器的使用
- pyqt中的一些命令
- 小结
QtDesigner产生的ui文件如何转换为py文件
使用QtDesigner可以快速的搭建一个gui程序的界面,虽然一些设计上没有代码那么灵活(可能是我使用不太好),但是效率感觉比代码写上去要快很多。但是QtDesigner默认产生的是ui文件,要生成我们py文件,需要在命令行中执行以下代码:
pyuic -o 路径\xxx.py 路径\xxx.ui
使用该命令就可以在指定路径生成转换好的py文件了。
但是有一点要注意,生成的py文件直接运行是不会生成窗口的,因为其相当于只是替你完成了前端的设计,而生成具体的窗口还需要你自己进行一些修改。
针对dialog对话框需要进行的修改
class Ui_Dialog(QtGui.QDialog): def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) self.ui=Ui_Dialog()# Ui_Dialog为.ui产生.py文件中窗体类名 self.ui.setupUi(self) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) myapp=Ui_Dialog() myapp.show() app.exec_()
针对MainWindows需要进行的修改
class Ui_MainWindow(QtGui.QMainWindow): def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) self.ui=Ui_MainWindows()# Ui_MainWindows为.ui产生.py文件中窗体类名 self.ui.setupUi(self)if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) myapp=Ui_MainWindows() myapp.show() app.exec_()
转换过程中报错的查错
在开发过程中有一次ui与py的转换中出现了如下图问题:
通过提示我们可以看到可以通过-d去debug于是我们试一下命令:
pyuic -d search.ui
得到以下结果
经过修改检查,发现是字体设置的问题,把字体修改一下即可。
pyqt中定时器的使用
在程序开发中我需要实现一个类似屏保的功能,即当页面一段时间无人操作时,就将返回到屏保页面。这里我是使用定时器来实现此功能的。
self.timer = QTimer(self)self.count = 0self.timer.timeout.connect(self.showNum)self.startCount()
其中self.showNum()函数和self.startCount()函数函数都是自己定义的
slef.showNum()用来实现当定时器到达规定时间会执行对应操作
def showNum(self): self.win2.close()#当定时器达到指定时间,执行方法showNum,关闭win2窗口
self.startCount()用来实现定时器的设置时间
def startCount(self): self.timer.start(5000)#设置定时为5秒
pyqt中的一些命令
QtGui.QDesktopWidget().availableGeometry()此方法可以获取当前显示屏大小,返回Rect对象。
MainWindow.resize(width,height )用来重新设置窗口大小,不过参数是int型,可以联合上面两个方法使得gui程序自适应显示器大小
self.lineedit.setStyleSheet(“border-width:0;border-style:outset”)边框透明化
self.connect(self.lineedit, SIGNAL(“returnPressed()”), self.updateUi)用来设置事件响应,这个例子是设置当lineedit获取enter输入时,会执行updateUi方法。
小结
在pyqt安装后会有一个文件夹,里面有很多pyqt编写的demo,可以用来参考学习。在这次的开发中,还是有一些感悟的,感觉开发一个软件,即使是一个很简单的程序,都要投入很多的精力,才能达到自己想要的效果,而想要让自己写出来的东西至善至美,也要不断的学习~希望自己能养成,总结,提高的好习惯,第一篇原创的博文完成了~
- 使用pyqt4开发GUI程序的问题总结
- 使用脚本开发GUI工具 (PyQt4试用)
- python + pyqt4开发GUI
- Python PyQt4模块编写的小型GUI程序
- 用cx_Freeze打包基于python3.2的pyqt4.9 GUI程序【图文教程】
- 使用wxWidgets开发跨平台的GUI程序
- 使用wxWidgets开发跨平台的GUI程序
- 使用wxWidgets开发跨平台的GUI程序
- 使用wxWidgets开发跨平台的GUI程序
- 使用wxWidgets开发跨平台的GUI程序-wxDevCpp
- Python的GUI工具-->PyQt4入门
- 用pyinstaller打包PyQt4程序遇到的问题及解决办法
- 使用cx_Freeze打包PyQt4程序
- 使用pyinstaller发布pyqt4程序
- 在非GUI程序中使用GUI的类和FrameWork的问题
- 一些VC之GUI开发问题总结
- 使用Eclipse+WindowBuilder Pro开发GUI程序
- eclipse使用wxWidgets开发GUI程序
- sizeof(数组名)和sizeof(指针)
- pycharm快捷键
- 写好Java代码的30条经验总结
- 哈希表的构造之开链法
- Introduction to Articial Intelligence
- 使用pyqt4开发GUI程序的问题总结
- JavaScript快速上手之5:事件
- Unity3D自学笔记——UGUI背包系统(六)角色换装及属性动态改变
- MediaMetadataRetriever类取得媒体文件信息
- Android事件处理(二)——View的dispatchTouchEvent 函数源码详解
- C++中的继承关系
- 输出10000以内的回文数
- SVN提交文件冲突解决办法
- 防泄密自我约束