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文件底部增加:

  1. 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

  1. import sys
  2. from PyQt5 import QtWidgets
  3. from mainwindow import Ui_MainWindow
  4. if __name__ == "__main__":
  5. app = QtWidgets.QApplication(sys.argv)
  6. ex = Ui_MainWindow()
  7. w = QtWidgets.QMainWindow()
  8. ex.setupUi(w)
  9. w.show()
  10. sys.exit(app.exec_())

5.2

  1. import sys
  2. from PyQt5 import QtWidgets
  3. from mainwindow import Ui_MainWindow
  4. class MainWindow(QtWidgets.QMainWindow):
  5. def __init__(self, parent=None):
  6. super(MainWindow, self).__init__(parent=parent)
  7. ui = Ui_MainWindow()
  8. ui.setupUi(self)
  9.  
  10. if __name__ == "__main__":
  11. app = QtWidgets.QApplication(sys.argv)
  12. w = MainWindow()
  13. w.show()
  14. sys.exit(app.exec_())

5.3

  1. import sys
  2. from PyQt5 import QtWidgets
  3. from mainwindow import Ui_MainWindow
  4. class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
  5. def __init__(self, parent=None):
  6. super(MainWindow, self).__init__(parent=parent)
  7. self.setupUi(self)
  8.  
  9. if __name__ == "__main__":
  10. app = QtWidgets.QApplication(sys.argv)
  11. w = MainWindow()
  12. w.show()
  13. sys.exit(app.exec_())

这三种方法都避免了

object has no attribute 'setCentralWidget'

错误

pyqt(二) 创建第一个程序(helloworld)解决object has no attribute 'setCentralWidget'的更多相关文章

  1. 我的QT5学习之路(二)——第一个程序

    一.前言 “工欲善其事,必先利其器”,上一节,我介绍了Qt的安装和配置方法,搭建了基本的开发平台.这一节,来通过一个简单的例子来了解Qt的编程样式和规范,开始喽~~~ 二.第一个程序——Hello W ...

  2. python基础(二)---第一个程序

    1. 第一个程序 1.1 Hello Python书写步骤 步骤一:新建文本文档文件,修改名称为hello.py 步骤二:使用记事本打开文件,书写程序内容如下: 步骤三:打开命令行,输入执行指令:py ...

  3. Go 基础学习笔记(3)| 第一个程序 “helloworld”

       //第一个程序总要说的清楚才行.   //建议先运行起第一个程序实践后,再看后面的具体解答 一.helloworld 编写运行 1.编写源程序,在 ~ /hello/src  编写hello.g ...

  4. 【 D3.js 入门系列 — 1 】 第一个程序 HelloWorld

    记得以前刚上大一学 C 语言的时候,写的第一个程序就是在控制台上输出 HelloWorld .当时很纳闷,为什么要输出这个.老师解释说所有学编程入门的第一个程序都是在屏幕上输出 HelloWorld, ...

  5. Day01_05_Java第一个程序 HelloWorld - java类规则

    第一个程序Hello World *基础语法规则: 1. 第一个Java程序 HelloWorld! public class HelloWorld{ public static void main( ...

  6. python第一个程序HelloWorld

    在写第一个python程序之前,我们还需要了解的一个东西就是python解释器 解释器,顾名思义,就是解释一段代码的机器,程序运行的平台,例如Java的解释器就是jdk. 我们在写好的python代码 ...

  7. Windows创建Sciter的第一个程序.HelloWorld

    介绍什么的就免了.直接进入正题 平台: Windows 10 IDE : Visual studio 2017 首先从官网下载最新的SDK,https://sciter.com/download/ 创 ...

  8. (转载)OC学习篇之---第一个程序HelloWorld

    之前的一片文章简单的介绍了OC的相关概述,从这篇开始我们就开始学习OC的相关知识了,在学习之前,个人感觉需要了解的其他的两门语言:一个是C/C++,一个是面向对象的语言(当然C++就是面向对象,不过这 ...

  9. django创建第一个项目helloworld

    环境:centos 7,已安装python 3.6环境 1.安装django并创建django第一个项目 1.1.使用pip安装django# pip install Django或指定安装版本# p ...

随机推荐

  1. Metasploit应用举例

    本篇文章包含以下几方面内容: 1.Metasploit端口扫描: 2.用其他模块 3.metasploit smb获取系统信息 4.Metsploit服务识别 5.ftp识别: 6.metasploi ...

  2. linux下查找指定后缀的文件

    1.linux下查找指定后缀的文件 例如查找当前目录下的所有后缀名时.c或.h的文件 find  .  -type f -regex  ".*\.\(c\|h\)"

  3. luogu1049装箱问题

    装箱问题 传送门 一个箱子容量为V//容量 同时有n个物品//n个 体积&&价值 要求n个物品中任取若干个装入箱内,使箱子的剩余空间为最小// v减去价值最大 */ #include& ...

  4. P4013 数字梯形问题 网络流二十四题

    P4013 数字梯形问题 题目描述 给定一个由 nn 行数字组成的数字梯形如下图所示. 梯形的第一行有 m 个数字.从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形 ...

  5. ubuntu 安装 ftp服务

    1. 更新源列表 ---> sudo apt-get update 2. 安装vsftpd ---> sudo apt-get install vsftpd (安装) ----> s ...

  6. com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input

    作者原创,转载请注明转载地址 第一次遇到该异常,在网上搜了很长时间也没找到解决答案,特此记录 1.异常展示: com.fasterxml.jackson.databind.JsonMappingExc ...

  7. OSError: [WinError 193] %1 不是有效的 Win32 应用程序。

    经过搜索查找,发现错误原因是我在win7 x64的机器上装了64位的python IDLE,不能有效load32位的dll,换成32位的python就好了.

  8. ORACLE 多表查询优化收集整理

    搞WEB的离不开数据库,在一个层面上,对数据库的熟练程度决定了很多的事情. 本文就大家都纠结的ORACLE多表查询的性能问题给出一系列个优化方法,那这些都是项目中长期用到的,所以很熟,很熟,已经成为习 ...

  9. node 文件、文件夹 增删改查

    1. 文件夹 增加文件夹 var fs = require("fs"); console.log("创建目录 tmp"); fs.mkdir("tmp ...

  10. Codeforces C - Om Nom and Candies

    C - Om Nom and Candies 思路:贪心+思维(或者叫数学).假设最大值max(wr,wb)为wr,当c/wr小于√c时,可以枚举r糖的数量(从0到c/wr),更新答案,复杂度√c:否 ...