您的位置:首页 > 编程语言 > Qt开发

pyqt(二) 创建第一个程序(helloworld)解决object has no attribute 'setCentralWidget'

2018-01-11 21:50 381 查看

1.运行Qt Creator

 

 

QtCreator主界面分为了6个模式:欢迎模式、编辑模式、设计模式、Debug调试模式、项目模式和帮助模式,分别由左侧的6个图标进行切换,对应的快捷键是Ctrl + 数字1到6。现在显示的就是欢迎界面,这里可以看到一些入门教程、开发的项目列表、Qt提供的示例程序,单击一个示例程序就可以直接打开该项目。单击左侧的Get Started Now会进入帮助模式,并打开Qt Creator指南,刚接触Qt的同学可以把里面的内容简单看下,当然,帮助中的内容是全英文的。

 

2.创建项目或文件

其实我们并不用QT创建项目,只用它可视化的编辑一个UI文件,也就是界面文件。我们用文件--新建项目或文件(ctrl+n)创建一个QT文件,Qt Designer Form,如下图:

 

选择界面模板:

设置文件名称和路径,这里名称可以设置为main,注意名称和路径上都不要有中文。如下图所示。

我把这个ui文件存在我的一个python项目中了。 

 

添加版本控制:

根据需要自己配置吧,这些小项目,其实不需要控制。

 

打开以后应该就是这个样子了,拖拖拽拽,放控件就可以了。

3.编译ui文件到py

打开pycharm

在ui文件上点右键,找到PYQT5(我们自己设的分类名字)--PyUIC,

运行后,会在同目录出现一个同名py文件。

4.给py文件创建执行:

在这个py文件底部增加:

import sys
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
ex = Ui_MainWindow()
w = QtWidgets.QMainWindow()
ex.setupUi(w)
w.show()
sys.exit(app.exec_())

这个时候就可以运行了。

和在QtCreator看到的一样就对了。

5.在外部调用这个界面

 5.1

import sys
from PyQt5 import QtWidgets
from mainwindow import  Ui_MainWindow
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
ex = Ui_MainWindow()
w = QtWidgets.QMainWindow()
ex.setupUi(w)
w.show()
sys.exit(app.exec_())

5.2

import sys
from PyQt5 import QtWidgets
from mainwindow import  Ui_MainWindow
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent=parent)
ui = Ui_MainWindow()
ui.setupUi(self)

if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())

5.3

import sys
from PyQt5 import QtWidgets
from mainwindow import  Ui_MainWindow
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent=parent)
self.setupUi(self)

if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())

这三种方法都避免了

object has no attribute 'setCentralWidget'

错误

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: