当前位置:首页 » 编程语言 » python27pyqt

python27pyqt

发布时间: 2023-07-15 02:59:03

‘壹’ python2.7支持pyqt5么

当前Deadline7版本使用的是Python2.7+Qt5作为框架,来进行开发的,为了与之配合,做定制项目开发的时候,也需要同样的版本搭配。
相关推荐:《Python教程》
操作过程:
1、进行pip的安装目录。 Python27/Scripts目录下面。
2、执行 pip install python-qt5
3、OK,搞定,就这么简单。

‘贰’ python pyqt怎么画圆

这个例子我做了好几天:

1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化

2)网上的PyQt的例子根本运行不了

填了无数个坑,结合二者,终于能完成了一个关于绘图的东西。这个过程也掌握了很多新的知识点

【知识点】

1、关于多个点的使用

poitns = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)]

请看:

import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *class StockDialog(QWidget): def __init__(self, parent=None):
super(StockDialog, self).__init__(parent)
self.setWindowTitle("利用QPainter绘制各种图形")

mainSplitter = QSplitter(Qt.Horizontal)
mainSplitter.setOpaqueResize(True)

frame = QFrame(mainSplitter)
mainLayout = QGridLayout(frame) #mainLayout.setMargin(10)
mainLayout.setSpacing(6)

label1=QLabel("形状:")
label2=QLabel("画笔线宽:")
label3=QLabel("画笔颜色:")
label4=QLabel("画笔风格:")
label5=QLabel("画笔顶端:")
label6=QLabel("画笔连接点:")
label7=QLabel("画刷风格:")
label8=QLabel("画刷颜色:")

self.shapeComboBox = QComboBox()
self.shapeComboBox.addItem("Line", "Line")
self.shapeComboBox.addItem("Rectangle", "Rectangle")
self.shapeComboBox.addItem('Rounded Rectangle','Rounded Rectangle')
self.shapeComboBox.addItem('Ellipse','Ellipse')
self.shapeComboBox.addItem('Pie','Pie')
self.shapeComboBox.addItem('Chord','Chord')
self.shapeComboBox.addItem('Path','Path')
self.shapeComboBox.addItem('Polygon','Polygon')
self.shapeComboBox.addItem('Polyline','Polyline')
self.shapeComboBox.addItem('Arc','Arc')
self.shapeComboBox.addItem('Points','Points')
self.shapeComboBox.addItem('Text','Text')
self.shapeComboBox.addItem('Pixmap','Pixmap')

self.widthSpinBox = QSpinBox()
self.widthSpinBox.setRange(0,20)

self.penColorFrame = QFrame()
self.penColorFrame.setAutoFillBackground(True)
self.penColorFrame.setPalette(QPalette(Qt.blue))
self.penColorPushButton = QPushButton("更改")

self.penStyleComboBox = QComboBox()
self.penStyleComboBox.addItem("Solid",Qt.SolidLine)
self.penStyleComboBox.addItem('Dash', Qt.DashLine)
self.penStyleComboBox.addItem('Dot', Qt.DotLine)
self.penStyleComboBox.addItem('Dash Dot', Qt.DashDotLine)
self.penStyleComboBox.addItem('Dash Dot Dot', Qt.DashDotDotLine)
self.penStyleComboBox.addItem('None', Qt.NoPen)

self.penCapComboBox = QComboBox()
self.penCapComboBox.addItem("Flat",Qt.FlatCap)
self.penCapComboBox.addItem('Square', Qt.SquareCap)
self.penCapComboBox.addItem('Round', Qt.RoundCap)

self.penJoinComboBox = QComboBox()
self.penJoinComboBox.addItem("Miter",Qt.MiterJoin)
self.penJoinComboBox.addItem('Bebel', Qt.BevelJoin)
self.penJoinComboBox.addItem('Round', Qt.RoundJoin)

self.brushStyleComboBox = QComboBox()
self.brushStyleComboBox.addItem("Linear Gradient",Qt.LinearGradientPattern)
self.brushStyleComboBox.addItem('Radial Gradient', Qt.RadialGradientPattern)
self.brushStyleComboBox.addItem('Conical Gradient', Qt.ConicalGradientPattern)
self.brushStyleComboBox.addItem('Texture', Qt.TexturePattern)
self.brushStyleComboBox.addItem('Solid', Qt.SolidPattern)
self.brushStyleComboBox.addItem('Horizontal', Qt.HorPattern)
self.brushStyleComboBox.addItem('Vertical', Qt.VerPattern)
self.brushStyleComboBox.addItem('Cross', Qt.CrossPattern)
self.brushStyleComboBox.addItem('Backward Diagonal', Qt.BDiagPattern)
self.brushStyleComboBox.addItem('Forward Diagonal', Qt.FDiagPattern)
self.brushStyleComboBox.addItem('Diagonal Cross', Qt.DiagCrossPattern)
self.brushStyleComboBox.addItem('Dense 1', Qt.Dense1Pattern)
self.brushStyleComboBox.addItem('Dense 2', Qt.Dense2Pattern)
self.brushStyleComboBox.addItem('Dense 3', Qt.Dense3Pattern)
self.brushStyleComboBox.addItem('Dense 4', Qt.Dense4Pattern)
self.brushStyleComboBox.addItem('Dense 5', Qt.Dense5Pattern)
self.brushStyleComboBox.addItem('Dense 6', Qt.Dense6Pattern)
self.brushStyleComboBox.addItem('Dense 7', Qt.Dense7Pattern)
self.brushStyleComboBox.addItem('None', Qt.NoBrush)

self.brushColorFrame = QFrame()
self.brushColorFrame.setAutoFillBackground(True)
self.brushColorFrame.setPalette(QPalette(Qt.green))
self.brushColorPushButton = QPushButton("更改")

labelCol=0
contentCol=1
#建立布局
mainLayout.addWidget(label1,1,labelCol)
mainLayout.addWidget(self.shapeComboBox,1,contentCol)
mainLayout.addWidget(label2,2,labelCol)
mainLayout.addWidget(self.widthSpinBox,2,contentCol)
mainLayout.addWidget(label3,4,labelCol)
mainLayout.addWidget(self.penColorFrame,4,contentCol)
mainLayout.addWidget(self.penColorPushButton,4,3)
mainLayout.addWidget(label4,6,labelCol)
mainLayout.addWidget(self.penStyleComboBox,6,contentCol)
mainLayout.addWidget(label5,8,labelCol)
mainLayout.addWidget(self.penCapComboBox,8,contentCol)
mainLayout.addWidget(label6,10,labelCol)
mainLayout.addWidget(self.penJoinComboBox,10,contentCol)
mainLayout.addWidget(label7,12,labelCol)
mainLayout.addWidget(self.brushStyleComboBox,12,contentCol)
mainLayout.addWidget(label8,14,labelCol)
mainLayout.addWidget(self.brushColorFrame,14,contentCol)
mainLayout.addWidget(self.brushColorPushButton,14,3)
mainSplitter1 = QSplitter(Qt.Horizontal)
mainSplitter1.setOpaqueResize(True)

stack1 = QStackedWidget()
stack1.setFrameStyle(QFrame.Panel|QFrame.Raised)
self.area = PaintArea()
stack1.addWidget(self.area)
frame1 = QFrame(mainSplitter1)
mainLayout1 = QVBoxLayout(frame1) #mainLayout1.setMargin(10)
mainLayout1.setSpacing(6)
mainLayout1.addWidget(stack1)

layout = QGridLayout(self)
layout.addWidget(mainSplitter1,0,0)
layout.addWidget(mainSplitter,0,1)
self.setLayout(layout)
#信号和槽函数 self.shapeComboBox.activated.connect(self.slotShape)
self.widthSpinBox.valueChanged.connect(self.slotPenWidth)
self.penColorPushButton.clicked.connect(self.slotPenColor)
self.penStyleComboBox.activated.connect(self.slotPenStyle)
self.penCapComboBox.activated.connect(self.slotPenCap)
self.penJoinComboBox.activated.connect(self.slotPenJoin)
self.brushStyleComboBox.activated.connect(self.slotBrush)
self.brushColorPushButton.clicked.connect(self.slotBrushColor)

self.slotShape(self.shapeComboBox.currentIndex())
self.slotPenWidth(self.widthSpinBox.value())
self.slotBrush(self.brushStyleComboBox.currentIndex())

def slotShape(self,value):
shape = self.area.Shape[value]
self.area.setShape(shape)
def slotPenWidth(self,value):
color = self.penColorFrame.palette().color(QPalette.Window)
style = Qt.PenStyle(self.penStyleComboBox.itemData(self.penStyleComboBox.currentIndex(),Qt.UserRole))
cap = Qt.PenCapStyle(self.penCapComboBox.itemData(self.penCapComboBox.currentIndex(),Qt.UserRole))
join = Qt.PenJoinStyle(self.penJoinComboBox.itemData(self.penJoinComboBox.currentIndex(),Qt.UserRole))
self.area.setPen(QPen(color,value,style,cap,join))
def slotPenStyle(self,value):
self.slotPenWidth(value)
def slotPenCap(self,value):
self.slotPenWidth(value)
def slotPenJoin(self,value):
self.slotPenWidth(value)
def slotPenColor(self):
color = QColorDialog.getColor(Qt.blue)
self.penColorFrame.setPalette(QPalette(color))
self.area.setPen(QPen(color))
def slotBrushColor(self):
color = QColorDialog.getColor(Qt.blue)
self.brushColorFrame.setPalette(QPalette(color))
self.slotBrush(self.brushStyleComboBox.currentIndex())
def slotBrush(self,value):
color = self.brushColorFrame.palette().color(QPalette.Window)
style = Qt.BrushStyle(self.brushStyleComboBox.itemData(value,Qt.UserRole))
if(style == Qt.Lin

‘叁’ python3怎么打包成exe

首先 PYTHON 是解释行语言,无法直接生成EXE可执行文件。
第二如果非要生成EXE可执行文件,需要借助工具和包来完成。 一般我们使用的mod
是PY2EXE这个 工具。
可以把PYTHON 的脚本和解释器一起打包成二进制文件。
步骤:
1 到py2exe的官网下载程序,注意对应的python版本,比如所用的python版本为2.7,那么就下载适配2.7版本的py2exe软件
下载完成后安装(与普通软件安装方式相同)
2 将要转换的python脚本放到Python文件夹
在python的目录下面,通常是(C:\Python27,看你安装Python的位置)建立setup.py文件,文件中输入以下代码:
from distutils.core import setup
import py2exe
setup(console=["将要转换的文件名称.py"])
3 从终端(cmd)进入Python27目录,输入以下命令
python setup.py py2exe
这样便完成了从.py文件到 .exe文件的转换
生成的软件在dist文件夹内

‘肆’ 如何使用pyQT做pythonGUI界面

首先,如果没有安装python和PyQt软件的请先直接搜索下载并安装。python是一个开源软件,因此都是可以在网上免费下载的,最新版本即可。下载完成后,我们先打开PyQt designer。

2
打开后,首先是一个默认的新建窗口界面,在这里我们就选择默认的窗口即可。

3
现在是一个完全空白的窗口。第一步我们要先把所有的设计元素都拖进这个窗口。我们先拖入一个“Label”,就是一个不可编辑的标签。

4
随后我们再拖入一个可以编辑的“Line Edit”

5
最后我们拖入最后一个元素:“PushButton”按钮,也就是平时我们所点的确定。

6
目前我们已经把所有所需要的元素都拖入了新建的窗口。对于每一个元素,我们都可以双击进行属性值的修改,此时我们仅需要双击改个名字即可

7
此时我们已经完成了一半,接下来需要对动作信号进行操作。我们需要先切入编辑信号的模式

8
此时把鼠标移动到任意元素,都会发现其变成红色,代表其被选中。

9
当我们选中pushbutton后,继续拖动鼠标指向上面的line edit,会发现由pushbutton出现一个箭头指向了line edit,代表pushbutton的动作会对line edit进行操作。

10
随即会弹出一个配置连接窗口。左边的是pushbutton的操作,我们选择clicked(),即点击pushbutton。

右边是对line edit的操作,我们选择clear(),即清楚line edit中的内容。

最后我们点击确定。

保存完成后,我们在PyQt中的操作就已经完成了。保存的文件名我们命名为test,PyQt生成的设计文件后缀是.ui。

然后我们需要把.ui文件转换成可编译的.py文件,我们需要用到PyQt提供的pyuic4命令来完成转换。这是一个DOS命令,因此我们需要调出DOS操作界面。打开开始菜单,找到附件中的运行。

在运行中输入cmd,确定后即可打开DOS界面。

在DOS界面下,我们需要定位到刚才保存的.ui文件的位置,如果是默认的话,会保存在C:\Python27\Lib\site-packages\PyQt4,定位的过程如图所示。转换成.py文件的命令是:pyuic4 test.ui -o test.py

转换命令执行后,会生成一个test.py的文件,如图所示

最后我们需要对生成的python文件加入头文件和主函数,就可以生成一个完整的GUI程序了!首先是在整个程序的最开头加入import sys,如图所示。

另外,在程序的末尾,加入如图所示的主函数代码。主函数会调用我们再PyQt里已经完成的生成元素的函数以及配置连接函数,因此我们只需要加上主函数来调用他们即可。

保存后,双击我们编辑完成的python文件,就会弹出我们刚才设计的GUI界面啦!这就是我们所完成的第一个用python语言写的GUI程序啦!

‘伍’ python pyqt4 无法调用matplotlib.pyplot包 请教

1、先设置好环境变量
在path变量中设置好以下路径:
C:\Python27\Scripts
C:\Python27

2、大部分报错问题都是因为库与库之间存在依赖关系
matplotlib依赖dateutil和pyparsing,如果Python里面没有安装dateutil和pyparsing,那么后续使用matplotlib的时候很可能会遇到依赖问题。所以需要安装dateutil。

Matplotlib, a 2D plotting library.
Requires numpy, dateutil, pytz, pyparsing, cycler, setuptools, and optionally pillow, pycairo, tornado, wxpython, pyside, pyqt4, ghostscript, miktex, ffmpeg, mencoder, avconv, or imagemagick.
所以上面这些包肯定是都需要有的,如果没有遇到问题,可能是因为代码中没有引用这些包而已;或者已经安装了。

2.1、使用easy_install.exe来安装所需要依赖的包
现在dateutil使用easy_install命令来安装,(easy_install会自己从网络上需要最新的合适的包来安装,所以不需要你自己去寻找和下载)
只需要输入 easy_install python-dateutil 命令就可以。
如果找不到easy_install 命令,要么是你的环境变量没有设置好,请参考1。要么是你的python包太老,没有预装easy_install,那就参考3,先安装easy_install

3、安装easy_install.exe, 手动下载安装包到本地安装

找到ez_setup.py文件,下载到本地E:\iso\VisualStudio2010\ (我是下载到这里,你自己就随意吧)
在cmd窗口下面,输入:
Python E:\iso\VisualStudio2010\ez_setup.py
成功后,C:\Python27\Scripts\目录下会多了easy_install.exe

4、使用easy_install.exe安装dateutil和pyparsing。。
反正根据提示,缺啥就用easy_install安装啥,这个easy_install是按照关键字来搜索安装包的。
easy_install python-dateutil
easy_install pyparsing
easy_install pip

4.1、如果不用easy_install.exe安装,也可以使用pip通过本地安装或者网络安装
使用pip安装 的命令是: pip install numpy
如果要手动把包下载到本地再安装,请参考6

5、把路径如:C:\Python27\Lib\site-packages\scipy\lib中的six.py six.pyc six.pyo三个文件拷贝到C:\Python27\Lib\site-packages目录下。

6、使用下载到本地的whl来安装各种包
在下面页面下载所对应的32bit或者64bit,区分python2.7还是python3的

numpy-1.11.1+mkl-cp27-cp27m-win_amd64.whl
pandas-0.18.1-cp27-cp27m-win_amd64.whl
scipy-0.17.1-cp27-cp27m-win_amd64.whl
matplotlib-1.5.2-cp27-cp27m-win_amd64.whl
把上面这些需要的whl放到python的scripts目录下,然后用下面的命令来安装即可
c:\Python27-x64\Scripts>
pip install pandas-0.18.1-cp27-cp27m-win_amd64.whl

‘陆’ python的spyder怎么打开,或者具体的安装教程

1、安装spyder
打开https://pypi.python.org/pypi/spyder
下载里面最新的源码zip包,在本地解压后,cmd里cd到解压的目录下
python setup.py install

很简单的安装,安装过程中也没报什么错误。
安装后,在python安装目录下的Scripts下面会有一个spyder.bat,运行它就可以启动Spyder
如果你的系统变量里包含了这个Scripts目录,那么你在cmd中输入spyder也可以启动。
(我的系统变量Path是这样设置的: ;%PYTHON_HOME%;%PYTHON_HOME%\Scripts )

2、安装PyQt4
由于Spyder是基于PyQt4的,所以如果你启动Spyder报错误:
就安装个PyQt4 4.6+版本就可以
在windows上安装PyQt4,为了简单安装,还是直接安装whl格式的安装包,这种包是经过编译的,安装速度比较快。
(如果你之前没安装过wheel模块,你只需要
pip install wheel


打开http://www.lfd.uci.e/~gohlke/pythonlibs/#pyqt4
下载里面相对应python版本、系统版本的whl文件
这里我下载了个PyQt4-4.11.4-cp27-none-win32.whl
cmd里cd到该whl文件目录下
pip install PyQt4-4.11.4-cp27-none-win32.whl

安装后,你在python里面输入
import PyQt4
没报错就说明安装成功
3、一些小问题
老实说,这窗体的panel拖曳不是很方便,如果拖动得窗体都乱了样,只需要在“View”→"Reset Window Layout"即可。
----
如果在运行py文件的时候报警告:
里面说没控制台被选择,这时候你得在"View"→"Panes"→"Console"观看下,看看是有什么问题。
另外也可以在"Run"→"Configure"里,设置"Execute in a new dedicated Python console",这时候再运行py文件试试下。

热点内容
我的世界服务器进不去该怎么办 发布:2025-02-08 11:47:41 浏览:232
linux的telnet 发布:2025-02-08 11:47:36 浏览:284
压缩袋打折 发布:2025-02-08 11:46:02 浏览:257
c语言结构体题目 发布:2025-02-08 11:46:01 浏览:336
如何svn限制一些外网不能访问 发布:2025-02-08 11:46:00 浏览:990
服务器外网ip咋配置 发布:2025-02-08 11:42:19 浏览:641
最优树算法 发布:2025-02-08 11:37:19 浏览:229
linux保存路由 发布:2025-02-08 11:36:25 浏览:557
M合成算法 发布:2025-02-08 11:26:22 浏览:329
大唐无双冒险脚本 发布:2025-02-08 11:08:36 浏览:761