第一个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. ...
随机推荐
- guava常用操作
Jack47 我思故我在 Google Java编程库Guava介绍 本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含 ...
- 当一名黑客获得一份WebShell后,会做什么
当你获得一份webshell后,你会干嘛? 我曾获得N多webshell.什么discuz.dedecms.phpwind.phpweb.aspcms等等,甚至还包括N多自己研发的线上平台. 可是,问 ...
- url编码base编码解码十六进制
0x25346425353425343525333525343325366125343525373725346425353125366625373825346425343425363725346225 ...
- Java中正则Matcher类的matches()、lookAt()和find()的区别
在Matcher类中有matches.lookingAt和find都是匹配目标的方法,但容易混淆,整理它们的区别如下: matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回 ...
- Android中分页滑动实现总结
手机的屏幕相对较小,因此会出现当有多项内容需要展示而不得不进行分页的情况.例如手机桌面的应用图标的展示.一般一屏可以显示4*4=16个小方块形的应用程序,可以通过左右滑动进行屏幕的选择.而Androi ...
- web cache server方案比较:varnish、squid、nginx
linux运维中,web cache server方案的部署是一个很重要的环节,选择也有很多种比如:varnish.squid.nginx.下面就对当下常用的这几个web cache server做一 ...
- Android入门篇2-activity调用跟数据传递
一.activity调用 假设ActivityTest调用SecondActivity 1.显示调用 button1.setOnClickListener(new View.OnClickListen ...
- EEG montage
Source: WikiPedia - Electroencephalography Since an EEG voltage signal represents a difference betwe ...
- [转]Linux后台进程管理利器:supervisor
FROM : http://www.liaoxuefeng.com/article/0013738926914703df5e93589a14c19807f0e285194fe84000 Linux后台 ...
- Vue系列:通过vue-router如何传递参数
使用vue-router 来实现webapp的页面跳转,有时候需要传递参数,做法如下: 参考文献:http://router.vuejs.org/en/named.html 主要有以下几个步骤: ( ...