使用pyqt4开发GUI程序的问题总结
2016-11-08 12:48
471 查看
使用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() 9aac myapp.show() app.exec_()
转换过程中报错的查错
在开发过程中有一次ui与py的转换中出现了如下图问题:
通过提示我们可以看到可以通过-d去debug于是我们试一下命令:
pyuic -d search.ui
得到以下结果
经过修改检查,发现是字体设置的问题,把字体修改一下即可。
pyqt中定时器的使用
在程序开发中我需要实现一个类似屏保的功能,即当页面一段时间无人操作时,就将返回到屏保页面。这里我是使用定时器来实现此功能的。self.timer = QTimer(self) self.count = 0 self.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,可以用来参考学习。在这次的开发中,还是有一些感悟的,感觉开发一个软件,即使是一个很简单的程序,都要投入很多的精力,才能达到自己想要的效果,而想要让自己写出来的东西至善至美,也要不断的学习~希望自己能养成,总结,提高的好习惯,第一篇原创的博文完成了~相关文章推荐
- 1~对原生态jdbc程序(单独使用jdbc开发)问题总结
- 详解使用mpvue开发github小程序总结
- 使用PyQt来编写第一个Python GUI程序
- 如何在linux下使用Clion开发Qt的Gui程序
- 使用PyQt来编写第一个Python GUI程序
- 微信小程序开发之不能使用eval函数的问题 推荐
- 微信小程序HotApp云笔记开发问题总结 之textarea不能实时保存及里面的值的获取的问题?
- winform开发 总结1>winform程序使用线程的必要性,以及正确的使用方式
- 微信小程序开发之不能使用eval函数的问题
- 小程序学习用demo推荐:豆瓣使用es6;附开发总结(适用1221)
- 微信小程序开发中遇到的问题总结
- 使用PyQt来编写第一个Python GUI程序
- Atitit 使用h5技术( html css js)制作桌面程序gui界面解决方案attilax总结
- 微信小程序开发中遇到的问题。总结
- 微信小程序 开发中遇到问题总结
- Android开发中使用开源框架的问题总结
- 微信小程序开发之不能使用eval函数的问题
- 使用PyQt来编写第一个Python GUI程序
- python3.6+pyqt5 IDE: Pycahrm+Qtdesign 快速开发GUI程序学习资源
- Android中so使用知识和问题总结以及插件开发过程中加载so的方案解析