第一个PyQt程序
这个程序虽然小,具备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程序的更多相关文章
- Python 开篇及第一个Python程序
本节内容 python 简单介绍 python 2.x 或者python 3.x python 安装 第一个python程序 一.python简单介绍 python的创始人为吉多.范罗苏姆(Guido ...
- DirectX游戏编程(一):创建一个Direct3D程序
一.环境 Visual Studio 2012,DirectX SDK (June 2010) 二.准备 1.环境变量(如没有配置请添加) 变量名:DXSDK_DIR 变量值:D:\Software\ ...
- 第一个python程序
一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...
- 编写第一个MapReduce程序—— 统计气温
摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在 ...
- 1.3 第一个C#程序
几乎没一门编程语言的第一个程序都叫“你好,世界”,所以先在visual studio 中创建一个Helloworld程序. 各部分的详细内容: Main方法是程序运行的起点,最重要的代码就写在Main ...
- 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能
一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...
- MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)
1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...
- Go! new Hello World, 我的第一个Go程序
以下语句摘自百度百科: Go语言是谷歌2009发布的第二款开源编程语言. Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持并行进 ...
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
随机推荐
- Codeforces Round #371 (Div. 2) C. Sonya and Queries[Map|二进制]
C. Sonya and Queries time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Sphinx和coreseek检索引擎
Sphinx是检索英文用,coreseek是检索中文用. Sphinx(斯芬克斯)是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索 ...
- Linux设备驱动之中断支持及中断分层
快速中断:在开启快速中断时,其他中断不会打断快速中断. 多个中断共享一个中断号. 中断行为受到限制: 1.不能使用可能引起阻塞的函数 2.不能使用可能引起调度的函数 中断注册:request_irq( ...
- Python的高级特性11:拓展基本数据类型(dict)
字典的创建有两种方式,如果出现In [26]这样的赋值方式就会报错. In [17]: s['name'] = 'alex' In [18]: s['sex'] = 'male' In [19]: s ...
- IntelliJ IDEA 快捷键备忘
打开关闭项目结构树 Alt + 1 查看方法定义 Ctrl + B 查看方法实现 Ctrl + Alt + B 查看类结构 Ctrl + F12 弹出 或 Alt + 7 右侧栏 查看类继承结构 Ct ...
- COGS 2. 旅行计划
2. 旅行计划 ★☆ 输入文件:djs.in 输出文件:djs.out 简单对比时间限制:3 s 内存限制:128 MB 过暑假了,阿杜准备出行旅游,他已经查到了某些城市的两两之间的距 ...
- maven spring profile 协同
请在网上查相关的使用情景,这里直接上要点.另外,可能不只一种方法,但这里只有一种. 1.POM.XML片段,使web.xml文件中有关活跃spring profile的内容可以被maven自动替换 & ...
- M3U8格式讲解及实际应用分析
M3U8格式讲解及实际应用分析 M3U8有啥好处 ? 网上搜索了一下,大家众说纷纭,个人理解主要是可以做多码率的适配,根据网络带宽,客户端会选择一个适合自己码率的文件进行播放,保证视频流的流畅. 在I ...
- 清北学堂2017NOIP冬令营入学测试P4745 B’s problem(b)
清北学堂2017NOIP冬令营入学测试 P4745 B's problem(b) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 题目描 ...
- 高性能JavaScript 循环语句和流程控制
前言 上一篇探讨了达夫设备对于代码性能的影响,本文主要探讨并且测试各种常见的循环语句的性能以及流程控制中常见的优化. 循环语句 众所周知,常用的循环语句有for.while.do-while以及for ...