这个程序虽然小,具备pyqt程序的皱型,可以作为一个模板使用了

#!/usr/bin/python3
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget class Example(QWidget): def __init__(self):
super().__init__() self.initUI() def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Simple')
self.show() if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

先看运行效果:

import sys
from PyQt5.QtWidgets import QApplication, QWidget

两个必要的导入

app = QApplication(sys.argv)

每一个pyqt程序必须创建一个application对象,sys.argv是命令行参数,可以通过命令行传参,来定制我们的程序

class Example(QWidget):

    def __init__(self):
super().__init__()

我们创建一个Example类继承QWidget类,PyQt5里面QWidget是所有用户界面对象的基类,所有和用户界面相关的类都必须继承

QWidget类,比如QMainWindow和QDialog等内置的窗口类都是继承自QWidget的,这里我们新建一个Example类同样要继承QWidget类,

使用super.__init__() 调用QWidget的构造函数

self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Simple')

setGeometry方法控制窗口的大小和位置,setWindowTitle设置窗口标题

self.show()

show方法将窗口显示到屏幕上

sys.exit(app.exec_()) 

app.exec_() 进入程序主循环,事件处理开始。主循环从窗口系统接收事件并把事件发送给指定窗口,当调用app.exit()或者

程序因为各种原因被破坏后,使用sys.exit()可以优雅的关闭程序,并通知系统程序结束

===============================================================

在上面代码基础上增加点东西
现在我要在这个窗口上添加一个按钮,在添加一个输入框

#!/usr/bin/python3
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import (QApplication, QWidget,QPushButton,
QLineEdit) class Example(QWidget): def __init__(self):
super().__init__() self.initUI() def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('Simple')
btn = QPushButton("button",self)
line = QLineEdit(self)
line.move(100,100)
self.show() if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

首先在import那句添加了两个相关类,在initUI函数里面添加了几行代码,一看就明白了 不用多说

现在你可能有这样的疑问,如果我要添加一个单选框,复选框,时间选择器等等,这些东西我怎么知道在那个模块呢?

都叫什么名字呢?  第一个问题在我的上一篇博文中就写了,常见功能对应在那些模块中,大概也就知道了和窗口界面有关的都在QWidget模块下面

比如现在你知道复选框在QWidget模块中 ,那你就可以打开qt文档 找到QWidget模块,一眼望下去你就会找到他,根据类名就能大概猜到功能

找到在哪里就好办了,你可以看看这个类提供那些方法,比如上面的按钮我没有设置他的位置,下面的输入框我用了move方法,你还可以设置输入框的宽高不是,

每一个类都提供了很多方法,很多不同的类具有部分相同的方法,用到的时候就去查文档,多查几次常用的就记住了

最简单的方法就是打开 Qt Creator

虽然是c++的,但是用法和python都是一样的,只是把c++的语法改成python方式来写就可以了,

第一个PyQt程序的更多相关文章

  1. Python 开篇及第一个Python程序

    本节内容 python 简单介绍 python 2.x 或者python 3.x python 安装 第一个python程序 一.python简单介绍 python的创始人为吉多.范罗苏姆(Guido ...

  2. DirectX游戏编程(一):创建一个Direct3D程序

    一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\ ...

  3. 第一个python程序

    一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...

  4. 编写第一个MapReduce程序—— 统计气温

    摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在 ...

  5. 1.3 第一个C#程序

    几乎没一门编程语言的第一个程序都叫“你好,世界”,所以先在visual studio 中创建一个Helloworld程序. 各部分的详细内容: Main方法是程序运行的起点,最重要的代码就写在Main ...

  6. 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能

    一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...

  7. MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)

    1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...

  8. Go! new Hello World, 我的第一个Go程序

    以下语句摘自百度百科: Go语言是谷歌2009发布的第二款开源编程语言. Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持并行进 ...

  9. 搭建java开发环境、使用eclipse编写第一个java程序

    搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...

随机推荐

  1. HDU4003Find Metal Mineral[树形DP 分组背包]

    Find Metal Mineral Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Other ...

  2. 第66课 C++中的类型识别

    1. 类型识别 (1)在面向对象中可能出现下面的情况 ①基类指针指向子类对象 ②基类引用成为子类对象的别名 ▲静态类型——变量(对象)自身的类型(定义变量类型时类型或参数类型) ▲动态类型——指针(引 ...

  3. memcache的安装和使用

    Memcache Memcached是一个高性能的分布式缓存系统.memcached自身不会实现分布式,分布式是由程序来实现的. Memcached一旦安装之后,自身进行管理!预申请一个很大的内存空间 ...

  4. Visio连接数据表实体外键[快捷记录]

    打开数据库模型图. 单击“常用”工具栏上的“连接线”工具. 将“连接线”工具放在父表的中心上,使表的四周出现轮廓线,然后拖到子表的中心.当子表出现轮廓线时,松开鼠标按钮. 两个连接点均变为红色,同时父 ...

  5. git的两本推荐书

    1. pro git, 可以网页直接看 http://iissnan.com/progit/?spm=5176.100239.blogcont5843.18.nUJDcK 2. Git权威指南 < ...

  6. Eclipse cpp 开发 include路径

  7. poj1416 Shredding Company

    Shredding Company Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5379   Accepted: 3023 ...

  8. hdu 4027

    Can you answer these queries? Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K ...

  9. ES5特性之Object.freeze

    Object.freeze方法比Object.seal方法更严格,不仅不能扩展新对象和不可重新配置属性的特性,还不能改变对象属性的值writable(不可写)

  10. Java synchronized

    1. 将synchronized加在方法上, 即可实现对此方法的同步 public synchronized void deposit(float amt) { float tmp = amount; ...