PyQt安装与一个简单例子

PyQt在Windows+Visual Studio下安装所需文件如下:
  • python-2.7.3.msi (www.python.org/download)
  • sip-4.14.2.zip (www.riverbankcomputing.co.uk/software/sip/download)
  • PyQt-Py2.7-x86-gpl-4.9.6-1.exe(www.riverbankcomputing.co.uk/software/pyqt/download)
安装方法:
  1. 首先安装python2.7.3,假如安装目录为 C:\python27
  2. 编译安装sip,解压sip-4.14.2.zip,假如解压目录为D:\sip-4.14.2,使用命令行cmd中进入sip目录,输入命令:
    C:\python27\python.exe  D:\sip-4.14.2\configure.py
    以上命令用来产生makefile文件。
    然后打开Visual Studio的命令提示窗口,进入sip的目录,输入命令:
    nmake
    nmake install
  3. 安装PyQt-Py2.7-x86-gpl-4.9.6-1.exe,点击安装就行。
一个简单的例子:

import sys

from PyQt4.QtGui import *

app = QApplication(sys.argv)

label = QLabel(”<font color=red size=72><b>Hello PyQt!</b></font>”)

label.show()

app.exec_()

如图:

print

print

  • 第一行导入sys模块是因为需要sys.argv中的命令行参数;
  • 第二行导入Qt的GUI模块,本例子中是QLabel;
  • 第四行创建一个QApplication对象并把命令行参数sys.argv传递给它,每个PyQt GUI应用都需要有一个QApplication对象;
  • 第五行创建一个QLabel对象,它可以显示HTML格式的文本;
  • 第六行表明要显示该label,但到目前为止,该label并不会真正显示出来,它只是进入了QApplication的对象事件队列中等待显示;
  • 第七行开始QApplication对象的事件循环(PyQt使用exec_()是避免与Python内置的exec()产生冲突),因此,label窗口一直显示,直到程序退出。

如果控件中含有中文,则必须设置好字符编码,否则会出现乱码。例如上面的例子,若label改为显示“你好 PyQt!”,则会出现乱码,需要如下改动:

# -*- coding: utf-8-*-

import sys

from PyQt4.QtGui import *

app = QApplication(sys.argv)

label = QLabel(u”<font color=red size=72><b>Hello PyQt!</b></font>”)

label.show()

app.exec_()

第一行指明使用的字符集;第七行的字符串前增加u。

时间: 2024-10-24 09:02:43

PyQt安装与一个简单例子的相关文章

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <script> var a = {n:1};  var b = a;   a.x = a = {n:2};  console.log(a.x);// --> undefined  console.log(b.x);// --> [object Object]  </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?".&

C语言多线程的一个简单例子

多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> void * print_a(void *); void * print_b(void *); int main(){ pthread_t t0; pthread_t t1; // 创建线程A if(pthread_creat

生产者与消费者的一个简单例子

生产者 #include<fstream> #include<iostream> #include<Windows.h> using namespace std; int main(void) { ofstream out; const char ch = '*'; long long k = 0; DWORD64 time = GetTickCount64(); while (true) { if (GetTickCount64() - time > 5000)

npm install —— 从一个简单例子,看本地安装与全局安装的区别

npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g grunt-cli # 全局安装 这两种安装方式有什么区别呢?从npm官方文档的说明来看,主要区别在于(后面通过具体的例子来说明):本地安装1. 将安装包放在 ./node_modules 下(运行npm时所在的目录)2. 可以通过 require() 来引入本地安装的包 全局安装1. 将安装包放在

Weka安装和一简单例子入门

Download from http://www.cs.waikato.ac.nz/ml/weka for Windows, Mac, Linux 安装,可改路径 安好,如下 运行 点开erxplore,出现 点open file,打开数据文件 安装目录下又点数据文件,如下图的data文件夹里,也可讲其复制到常用的文件夹里,方便每次使用. 打开数据文件夹的一个数据文件为例,如weather.nominal 之后这样的界面,多观察看看各种属性和标签按钮,慢慢熟悉 点击edit按钮,出现如下数据的表

netsh interface portproxy的一个简单例子

netsh interface portproxy的微软帮助文档地址: https://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx#BKMK_1 下面是一个简单的例子: //显示所有 portproxy 参数,包括 v4tov4.v4tov6.v6tov4 和 v6tov6 的端口/地址对. C:\>netsh interface portproxy show all //因为没有配置过它,所以没有东西可以显示. //添加配置

词法分析程序 LEX和VC6整合使用的一个简单例子

词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if.switch-case来写一通所谓的状态转换就可以,我近期会写一个简单的词法分析程序来作为例子... 现在已经有人发明了一个叫LEX的工具让你去应用,那我们就省了不少力气,毕竟没到万不得已的时候,我们都没必要重新发明轮子,从另一个角度来说,使用工具是我们人类知识继承的一种方法,也是我们比其他动物优

一个简单例子了解使用互斥量线程同步

在刚开始学习学习线程同步时总是认为两个线程或是多个线程共同运行,但是那样是做的. 同步就是协同步调,按预定的先后次序进行运行.如:你说完,我再说. "同"字从字面上容易理解为一起动作. 其实不是,"同"字应是指协同.协助.互相配合. 如进程.线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行:B依言执行,再将结果给A:A再继续操作. 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它

Spring MVC:使用SimpleUrlHandlerMapping的一个简单例子

实现一个控制器ShirdrnController,如下所示: package org.shirdrn.spring.mvc; import java.util.Date; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log;import org.apache.commons.logging.